Проверяет, перенаправляется ли стандартный ввод(stdin) или стандартный
вывод(
stdout) в файл или нет
Синтаксис
Использование
#include "fbio.bi"
result = IsRedirected( is_input )
Параметры
is_input
Long , указывающий
тип информации для возврата.
Возвращаемое значение
Возвращает ненулевое значение (-1) если stdin и stdout
перенаправляется, в противном случае возвращает ноль (0).
Описание
IsRedirected проверяет, перенаправляется ли стандартный ввод или
стандартный вывод в файл или нет.
Если is_input равна ненулевому значению (-1), IsRedirected
проверяет stdin.
Если is_input равно нулю (0), IsRedirected
проверяет stdout.
Пример
'' Пример в windows, только для
использования принципа
'' Самодостаточный пример, используя его собственный файл .exe , как
фиктивный входной файл для перенаправления стандартного ввода
#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)) = ".exe" Then
redirection &= """"
Else
redirection &= ".exe"""
End If
If Command() = "" Then '' Первый
процесс без перенаправления
стандартного ввода
'' Проверка перенаправления стандартного
ввода
Print "First process without stdin redirection: IsRedirected(-1) = "; Isredirected(-1)
'' Создание асинхронного второго процесса с
стандартным вводом, перенаправленным из file.exe
Shell("start /d " & pathExe & " /b " & fileExe & redirection & " secondprocess")
'' В ожидании прекращения асинхронного
второго процесса
Sleep
ElseIf Command() = "secondprocess" Then '' Второй
процесс с перенаправлением стандартного ввода
'' Проверка перенаправления стандартного
ввода
Print "Second process with stdin redirection : IsRedirected(-1) = "; Isredirected(-1)
End If
Отличия от QB
См. также