StderrRead
Читает из потока ошибок STDERR ранее запущенного дочернего процесса.
StderrRead ( process_id [, peek = False [, binary = False ]] )
Параметры
process_id | Идентификатор дочернего процесса (PID), возвращённый предыдущим вызовом функции Run. |
peek |
[необязательный] Если True, то функция не удаляет прочитанные символы из потока. |
binary |
[необязательный] Если True, то функция читает данные как бинарные, а не текст (по умолчанию как текст). |
Возвращаемое значение
Успех: | Возвращает прочитанные данные. @extended содержит количество прочитанных байтов. |
Ошибка: | Устанавливает @error не равной 0, если достигнут конец файла (EOF), STDERR не был перенаправлен на процесс или другая ошибка. |
Примечания
StderrRead читает стандартный выходной поток из консоли дочернего процесса, который обычно используется консольными приложениями для вывода данных на экран. Во время вызова функции Run создавая дочерний процесс, данные потока которого вы хотите прочитать, нужно включить параметр STD I/O, указав значение $STDERR_CHILD (4) в функции Run, чтобы она работала правильно (смотрите функцию Run()).См. также
StdoutRead, StdinWrite, StdioClose, Run, RunAsПример
#include <Constants.au3>
Local $iPID = Run(@ComSpec & " /c DIR Example.au3", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $sOutput
While 1
$sOutput = StdoutRead($iPID)
If @error Then ; Выход из цикла, если процесс завершён или StdoutRead возвращает ошибку.
ExitLoop
EndIf
MsgBox(4096, "Stdout прочитано:", $sOutput)
WEnd
While 1
$sOutput = StderrRead($iPID)
If @error Then ; Выход из цикла, если процесс завершён или StdoutRead возвращает ошибку.
ExitLoop
EndIf
MsgBox(4096, "Stderr прочитано:", $sOutput)
WEnd