Wie kann festgestellt werden, ob die Eingabe in Go weitergeleitet wird?

Mary-Kate Olsen
Freigeben: 2024-11-05 04:52:02
Original
709 Leute haben es durchsucht

How to Determine if Input is Piped in Go?

Bestimmen von über Pipes übertragenen Eingaben in Go

In Go-Anwendungen ist es von entscheidender Bedeutung, zu verstehen, ob ein Befehl über Pipes weitergeleitet wird, insbesondere bei der Verarbeitung von Daten aus verschiedenen Quellen. In diesem Artikel wird untersucht, wie Sie feststellen können, ob ein Befehl über eine Pipeline weitergeleitet wird oder nicht, sodass Entwickler ihren Code entsprechend anpassen können.

Lösung

Go stellt os.Stdin.Stat( )-Funktion zum Abrufen der mit der Standardeingabe verknüpften Dateiinformationen. Zu diesen Informationen gehört der Dateimodus, der angibt, ob die Eingabe von einem Terminal oder einer Pipe stammt. Der folgende Codeausschnitt zeigt, wie os.Stdin.Stat() für diesen Zweck verwendet wird:

<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>
Nach dem Login kopieren

Wenn der Befehl weitergeleitet wird, wird fi.Mode() & os.ModeCharDevice zu 0 ausgewertet, was anzeigt, dass die Die Eingabe erfolgt nicht von einem Zeichengerät (z. B. einem Terminal). Umgekehrt bedeutet ein Wert ungleich Null, dass die Eingabe von einem Zeichengerät stammt.

Dieser Ansatz bietet eine zuverlässige Möglichkeit, zwischen Eingaben mit und ohne Pipeline zu unterscheiden, sodass Entwickler das Verhalten ihrer Anwendungen entsprechend anpassen können.

Das obige ist der detaillierte Inhalt vonWie kann festgestellt werden, ob die Eingabe in Go weitergeleitet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage