Maison > Article > développement back-end > Comment déterminer si l’entrée est redirigée vers Go ?
Détermination de l'entrée redirigée dans Go
Comprendre si une commande est redirigée est crucial dans les applications Go, en particulier lors du traitement de données provenant de diverses sources. Cet article explique comment déterminer si une commande est redirigée ou non, permettant aux développeurs d'adapter leur code en conséquence.
Solution
Go fournit le os.Stdin.Stat( ) fonction pour récupérer les informations de fichier associées à l'entrée standard. Ces informations incluent le mode fichier, qui indique si l'entrée provient d'un terminal ou d'un tube. L'extrait de code suivant montre comment utiliser os.Stdin.Stat() à cette fin :
<code class="go">package main import ( "fmt" "os" ) func main() { fi, _ := os.Stdin.Stat() if (fi.Mode() & os.ModeCharDevice) == 0 { fmt.Println("data is from pipe") } else { fmt.Println("data is from terminal") } }</code>
Lorsque la commande est redirigée, fi.Mode() et os.ModeCharDevice sont évalués à 0, indiquant que le l'entrée ne provient pas d'un périphérique de caractères (tel qu'un terminal). À l’inverse, une valeur non nulle signifie que l’entrée provient d’un périphérique de caractères.
Cette approche fournit un moyen fiable de distinguer les entrées redirigées et non redirigées, permettant aux développeurs d’adapter le comportement de leurs applications en conséquence.
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!