Funktionsreferenz

StdoutRead

Liest vom STDOUT-Stream eines zuvor gestarteten Child-Prozesses ein

StdoutRead ( process_id[, peek = false[, binary = false]] )

 

Parameter

process_id Die Prozess-ID eines Child-Prozesses, wie bei einem vorigen Aufruf von Run zurückgegeben
peek [optional] Wenn True, entfernt die Funktion die eingelesenen Zeichen nicht aus dem Stream
binary [optional] Wenn True, liest die Funktion die Daten als binär anstatt als Text (Standard ist Text)

 

Rückgabewert

Erfolg: Gibt die gelesenen Daten zurück. @extended enthält die Anzahl der gelesenen Bytes.
Fehler: Setzt @error ungleich Null, wenn EOF erreicht ist, STDOUT nicht an diesen Prozess weitergeleitet wurde oder ein anderer Fehler aufgetreten ist.

 

Bemerkungen

StdoutRead liest aus dem Konsolen-Standard-Ausgabe-Stream eines Child-Prozesses, der normalerweise von Konsolen-Applikationen genutzt wird, um Text auf dem Bildschirm auszugeben. Während des Aufrufs von Run für den Child-Prozess, aus dem man lesen möchte, muss der STD-I/O-Parameter den Wert $STDOUT_CHILD (2) enthalten, damit diese Funktion richtig arbeitet (siehe die Run-Funktion).

StdoutRead blockiert den Stream nicht, sondern kehrt sofort zurück. Sollen alle Daten ermittelt werden, muss die Funktion in einer Schleife aufgerufen werden.
"Peeking" auf dem Stream entfernt die Daten nicht aus dem Puffer, sondern gibt die verfügbaren Daten einfach zurück.
Standardmäßig werden Daten im Textformat zurückgegeben. Wird die binary-Option verwendet, so werden die Daten im Binärformat zurückgegeben.

 

Verwandte Funktionen

StderrRead, 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...")