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
Freigeben: 2024-10-31 08:45:29
Original
600 Leute haben es durchsucht

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage