使用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中文網其他相關文章!