首頁 > 後端開發 > Golang > 有沒有辦法在不阻塞的情況下檢查Go中的標準輸入(os.Stdin)是否有資料?

有沒有辦法在不阻塞的情況下檢查Go中的標準輸入(os.Stdin)是否有資料?

Barbara Streisand
發布: 2024-10-31 08:45:29
原創
579 人瀏覽過

Is there a way to check if standard input (os.Stdin) in Go has data without blocking?

如何使用Go 確定Stdin 中的資料可用性

問題

在Go 中,是否有可靠的方法來檢查輸入流(os . Stdin) 包含數據?

當沒有可用資料時從流塊中讀取資料的傳統方法,對於某些用例來說是不切實際的。

答案

類似於其他文件,可以檢查 os.Stdin 以確定其大小,為資料可用性檢測提供一種便捷的方法。

<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>
登入後複製

透過利用此技術,您可以區分空和非空 stdin 輸入,從而允許更靈活地處理資料可用性。

以上是有沒有辦法在不阻塞的情況下檢查Go中的標準輸入(os.Stdin)是否有資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板