Heim >Backend-Entwicklung >Golang >Gibt es eine Möglichkeit zu überprüfen, ob die Standardeingabe (os.Stdin) in Go Daten ohne Blockierung enthält?

Gibt es eine Möglichkeit zu überprüfen, ob die Standardeingabe (os.Stdin) in Go Daten ohne Blockierung enthält?

Barbara Streisand
Barbara StreisandOriginal
2024-10-31 08:45:29623Durchsuche

Is there a way to check if standard input (os.Stdin) in Go has data without blocking?

So ermitteln Sie die Datenverfügbarkeit in Stdin mit Go

Frage

Gibt es in Go eine zuverlässige Möglichkeit, zu überprüfen, ob der Eingabestream (os .Stdin) enthält Daten?

Der herkömmliche Ansatz, aus den Stream-Blöcken zu lesen, wenn keine Daten verfügbar sind, macht ihn für bestimmte Anwendungsfälle unpraktisch.

Antwort

Ähnlich wie Andere Dateien, os.Stdin, können überprüft werden, um ihre Größe zu bestimmen, was eine praktische Methode zur Erkennung der Datenverfügbarkeit bietet.

<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>

Durch die Verwendung dieser Technik können Sie zwischen leeren und nicht leeren stdin-Eingaben unterscheiden und so Folgendes ermöglichen für einen flexibleren Umgang mit der Datenverfügbarkeit.

Das obige ist der detaillierte Inhalt vonGibt es eine Möglichkeit zu überprüfen, ob die Standardeingabe (os.Stdin) in Go Daten ohne Blockierung enthält?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn