Isredirected
 
检查stdin或stdout是否被重定向到一个文件

语法

Declare Function IsRedirected ( ByVal is_input As Long = 0 ) As Long

用法

#include "fbio.bi"
result = IsRedirected( is_input )

参数

is_input
A Long指示要返回的信息的类型。

返回值

如果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差别

  • 新的FreeBASIC。

参考