Dans Go, interagir avec l'entrée standard (stdin) est souvent une tâche cruciale lorsque l'on travaille avec des commandes et des pipelines. Cependant, déterminer si stdin contient des données sans bloquer l'exécution du programme peut être difficile.
L'objet fichier os.Stdin représente stdin et possède des fonctionnalités similaires à d'autres objets fichier dans Go. Cela nous permet d'exploiter la fonction Stat pour collecter des informations sur stdin, y compris sa taille.
Pour vérifier si stdin contient des données, nous pouvons vérifier sa taille en utilisant le code suivant :
<code class="go">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>
Lorsque ce code est compilé dans un exécutable, il peut être utilisé comme filtre pour traiter les entrées transmises vers stdin. Par exemple, exécuter la commande echo test | ./executable afficherait "5 octets disponibles dans Stdin" sur la console, indiquant que stdin contient des données. À l'inverse, exécuter ./executable sans aucune entrée afficherait « Stdin est vide ».
Cette approche permet aux développeurs de vérifier les données dans stdin sans bloquer et de poursuivre la logique de leur programme en conséquence. Il est particulièrement utile lorsque vous travaillez avec des pipelines ou lorsque vous gérez les entrées utilisateur depuis 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!