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