首頁 >後端開發 >Golang >如何使用 Go 檢查標準輸入 (Stdin) 中的資料可用性?

如何使用 Go 檢查標準輸入 (Stdin) 中的資料可用性?

Linda Hamilton
Linda Hamilton原創
2024-11-03 13:11:301002瀏覽

How Can I Check for Data Availability in Standard Input (Stdin) Using Go?

使用Go 檢查標準輸入(Stdin)中的資料可用性

在Go 中,os 套件提供了os.Stdin 變數來存取標準輸入流。但是,如果沒有資料可供讀取,則該流有時可能會阻塞。若要確定資料是否存在於輸入流中,可以將 os.Stdin 視為檔案並檢查其大小。

解:

如 os.Stdin 所示。 Stdin 的行為類似於文件,其 Stat() 方法可用於檢索文件訊息,包括其大小。以下是一個例子:

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

用法:

此程式碼可以用作執行檔「pipe」:

<code class="bash">$ ./pipe
Stdin is empty
$ echo test | ./pipe
5 bytes available in Stdin</code>

中第一行,管道可執行檔在沒有輸入的情況下運行,導致標準輸入為空,輸出為「Stdin 為空」。在第二行中,文字「test」透過管道傳輸到輸入中,導致 Stdin 的大小增加,並且輸出更改為「Stdin 中可用 5 個位元組。」

以上是如何使用 Go 檢查標準輸入 (Stdin) 中的資料可用性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn