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