Maison > développement back-end > Golang > Comment déterminer si l'entrée est redirigée vers Go ?

Comment déterminer si l'entrée est redirigée vers Go ?

Mary-Kate Olsen
Libérer: 2024-11-05 04:52:02
original
724 Les gens l'ont consulté

How to Determine if Input is Piped in 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>
Copier après la connexion

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!

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