Liest eine Anzahl von Zeichen aus einem STDERR-Stream eines zuvor gestarteten Child-Prozesses ein.
StderrRead ( process_id[, peek = false[, binary = false]] )
Parameter
| process_id | Die Prozess-ID eines Child-Prozesses, wie aus einem vorigen Aufruf von Run zurückgegeben. |
| peek | [optional] Wenn True, werden die von der Funktion eingelesenen Zeichen nicht aus dem Stream entfernt. |
| binary | [optional] Wenn True, werden die Daten als Binärwerte, wenn False als Text gelesen (Voreinstellung ist Text). |
Rückgabewert
| Erfolg: | Gibt die eingelesenen Daten zurück. @extended gibt die Anzahl der gelesenen Bytes zurück. |
| Fehler: | Setzt @error ungleich Null wenn: EOF wurde erreicht, STDERR wurde an diesen Prozess nicht weitergeleitet oder ein anderer Fehler ist aufgetreten. |
Bemerkungen
StderrRead liest aus dem Konsolen-Standard-Error-Stream eines Child-Prozesses, der normalerweise von Konsolen-Applikationen genutzt wird, um Fehler auf dem Bildschirm auszugeben. Solange die Funktion aus dem Child-Prozess-Stream lesen möchte, muss der STD-I/O-Parameter das $STDERR_CHILD-Flag (Integer 4) enthalten, damit diese Funktion richtig arbeitet (siehe die Run Funktion).
Verwandte Funktionen
StdoutRead, StdinWrite, StdioClose, Run, RunAs
Beispiel
; Demonstriert 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 gelesen:", $line)
WEnd
While 1
$line = StderrRead($foo)
If @error Then ExitLoop
MsgBox(0, "STDERR gelesen:", $line)
WEnd
MsgBox(0, "Debug", "Wie aufregend...")