実行した子プロセスのSTDERRストリームを読み取ります。
StderrRead ( process_id[, peek = false[, binary = false]] )
パラメータ
process_id | Run実行時に返される子プロセスのプロセスID。 |
peek | [オプション]trueの場合、関数は読み取った文字をストリームから削除しません。 |
binary | [オプション]trueの場合、関数はテキストではなくバイナリとしてデータを読み取ります(デフォルトではテキストです)。 |
返し値
成功 | 読み取ったデータを返します。@extendedには読み取ったバイト数が格納されます。 |
失敗 | EOFに到達した場合、@errorを非ゼロに設定します。STDERRはプロセス、その他のエラーをリダイレクトしません。 |
注意
StderrReadは子プロセスのコンソール標準出力ストリームを読み取ります。コンソール標準エラーストリームは通常はコンソールアプリケーションがスクリーンにエラーを表示するために使用されます。この関数が正常に動作するためには、読み取りたい子プロセスをRunで実行する際にSTD I/Oパラメータに値 $STDERR_CHILD (4)を設定する必要があります(Run関数を参照)。
関連
StdoutRead, StdinWrite, StdioClose, Run, RunAs
例
; StdoutRead()のデモ
#include <Constants.au3>
Local $foo = Run(@ComSpec & " /c dir foo.bar", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
MsgBox(0, "STDOUT read:", $line)
Wend
While 1
$line = StderrRead($foo)
If @error Then ExitLoop
MsgBox(0, "STDERR read:", $line)
Wend
MsgBox(0, "Debug", "Exiting...")