Maison > développement back-end > Golang > Comment puis-je vérifier la disponibilité des données dans l'entrée standard (Stdin) à l'aide de Go ?

Comment puis-je vérifier la disponibilité des données dans l'entrée standard (Stdin) à l'aide de Go ?

Linda Hamilton
Libérer: 2024-11-03 13:11:30
original
947 Les gens l'ont consulté

How Can I Check for Data Availability in Standard Input (Stdin) Using Go?

Vérification de la disponibilité des données dans l'entrée standard (Stdin) à l'aide de Go

Dans Go, le package os fournit la variable os.Stdin pour accéder au flux d’entrée standard. Cependant, ce flux peut parfois se bloquer si aucune donnée n'est disponible en lecture. Pour déterminer si des données sont présentes dans le flux d'entrée, os.Stdin peut être traité comme un fichier et sa taille peut être vérifiée.

Solution :

Comme os. Stdin se comporte comme un fichier, sa méthode Stat() peut être utilisée pour récupérer des informations sur le fichier, y compris sa taille. Voici un exemple :

<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

Utilisation :

Ce code peut être utilisé comme fichier exécutable "pipe":

<code class="bash">$ ./pipe
Stdin is empty
$ echo test | ./pipe
5 bytes available in Stdin</code>
Copier après la connexion

Dans Sur la première ligne, l'exécutable du tube est exécuté sans entrée, ce qui donne une entrée standard vide et la sortie "Stdin est vide". Dans la deuxième ligne, le texte « test » est redirigé vers l'entrée, ce qui entraîne une augmentation de la taille de Stdin, et la sortie passe à « 5 octets disponibles dans Stdin ».

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