Überprüfen der Datenverfügbarkeit in der Standardeingabe (Stdin) mit Go
In Go stellt das Betriebssystempaket die Variable os.Stdin für den Zugriff bereit Standard-Eingabestream. Dieser Stream kann jedoch manchmal blockieren, wenn keine Daten zum Lesen verfügbar sind. Um festzustellen, ob Daten im Eingabestream vorhanden sind, kann os.Stdin wie eine Datei behandelt und ihre Größe überprüft werden.
Lösung:
Wie os. Stdin verhält sich wie eine Datei, seine Stat()-Methode kann zum Abrufen von Dateiinformationen, einschließlich ihrer Größe, verwendet werden. Hier ist ein Beispiel:
<code class="go">package main import ( "fmt" "os" ) func main() { file := os.Stdin fi, err := file.Stat() if err != nil { fmt.Println("file.Stat()", err) } size := fi.Size() if size > 0 { fmt.Printf("%v bytes available in Stdin\n", size) } else { fmt.Println("Stdin is empty") } }</code>
Verwendung:
Dieser Code kann als ausführbare Datei „Pipe“ verwendet werden:
<code class="bash">$ ./pipe Stdin is empty $ echo test | ./pipe 5 bytes available in Stdin</code>
In In der ersten Zeile wird die ausführbare Pipe-Datei ohne Eingabe ausgeführt, was zu einer leeren Standardeingabe und der Ausgabe „Stdin ist leer“ führt. In der zweiten Zeile wird der Text „test“ in die Eingabe geleitet, wodurch sich die Größe von Stdin erhöht und die Ausgabe sich in „5 Bytes verfügbar in Stdin“ ändert.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Go die Datenverfügbarkeit in der Standardeingabe (Stdin) überprüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!