Maison  >  Article  >  développement back-end  >  Comment vérifier si Stdin a des données en Go ?

Comment vérifier si Stdin a des données en Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-02 04:08:02784parcourir

How to Check if Stdin Has Data in Go?

Comment savoir si Stdin contient des données avec Go

Lorsque vous travaillez avec des flux d'entrée dans Go, vous pouvez rencontrer des situations où vous devez déterminer si os.Stdin dispose de données disponibles. Cela peut être utile dans divers scénarios, par exemple pour décider s'il faut procéder à la lecture d'une saisie ou afficher une invite à l'utilisateur.

Solution :

os.Stdin peut être traité comme n’importe quel autre descripteur de fichier dans Go. Pour vérifier s'il contient des données, vous pouvez examiner sa taille :

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

Utilisation :

Vous pouvez compiler ce code dans un exécutable et l'utiliser comme un tuyau :

$ ./pipe
Stdin is empty
$ echo test | ./pipe
5 bytes available in Stdin

Cet exemple démontre que lorsqu'aucune donnée n'est transmise vers stdin, le programme signale un stdin vide, et lorsque des données sont transmises, il indique correctement les octets disponibles.

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!

Déclaration:
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