检查stdin或stdout是否被重定向到一个文件
语法
用法
#include "fbio.bi"
result = IsRedirected( is_input )
参数
返回值
如果stdin或stdout被重定向,返回非零(-1),否则返回零(0)。
说明
IsRedirected检查是否将stdin或stdout重定向到一个文件。
如果is_input 等于非零(-1),则IsRedirected检查stdin。
如果is_input 等于零(0),则IsRedirected检查stdout。
例子
''一个基于Windows的例子,只是为了使用原则
''自足的例子,使用自己的.exe文件作为stdin重定向的虚拟输入文件
#include "fbio.bi"
''引号用于与路径名称中的空格兼容
Dim As String pathExe = """" & ExePath & """"
Dim As String fileExe = Mid(Command(0), InStrRev(Command(0), "\") + 1)
Dim As String redirection = "< """ & Command(0)
If LCase(Right(Command(0), 4)) = "。可执行程序" Then
redirection &= """"
Else
redirection &= "。可执行程序””"
End If
If Command() = "" Then ''没有标准重定向的第一个进程
''检查stdin重定向
Print "没有stdin重定向的第一个进程:IsRedirected(-1)="; Isredirected(-1)
''创建异步第二进程与stdin重定向从file.exe
Shell("开始/ d" & pathExe & "/b" & fileExe & redirection & "secondprocess")
''等待终止异步二进程
Sleep
ElseIf Command() = "secondprocess" Then ''第二个进程用stdin重定向
''检查stdin重定向
Print "使用stdin重定向的第二个进程:IsRedirected(-1)="; Isredirected(-1)
End If
与QB差别
参考