„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 15.11.2024
Durchsuche:772

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 Anwendungen unpraktisch Fällen.

Antwort

Ähnlich wie andere Dateien kann os.Stdin überprüft werden, um seine Größe zu bestimmen, was eine praktische Methode zur Datenverfügbarkeitserkennung bietet.

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")
    }
}

Durch die Verwendung dieser Technik können Sie zwischen leeren und nicht leeren Standardeingaben unterscheiden, was eine flexiblere Handhabung der Datenverfügbarkeit ermöglicht.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3