Maison > développement back-end > Golang > Existe-t-il un moyen de vérifier si l'entrée standard (os.Stdin) dans Go contient des données sans blocage ?

Existe-t-il un moyen de vérifier si l'entrée standard (os.Stdin) dans Go contient des données sans blocage ?

Barbara Streisand
Libérer: 2024-10-31 08:45:29
original
598 Les gens l'ont consulté

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

Comment déterminer la disponibilité des données dans Stdin avec Go

Question

Dans Go, existe-t-il un moyen fiable de vérifier si le flux d'entrée (OS .Stdin) contient des données ?

L'approche conventionnelle consistant à lire à partir du flux se bloque lorsqu'aucune donnée n'est disponible, ce qui la rend peu pratique pour certaines utilisations cas.

Réponse

Semblable à d'autres fichiers, os.Stdin peut être inspecté pour déterminer sa taille, offrant une méthode pratique pour la détection de la disponibilité des données.

<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>
Copier après la connexion

Par en utilisant cette technique, vous pouvez faire la distinction entre les entrées stdin vides et non vides, permettant une gestion plus flexible de la disponibilité des données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal