有没有办法检查输入流(os.Stdin)是否有数据?从 GO 中的初始标准输入读取的帖子?显示如何读取数据,但不幸的是,如果没有数据通过管道输入标准输入,则会阻塞。
2 回答
长风秋雁
TA贡献1757条经验 获得超7个赞
os.Stdin 就像任何其他“文件”一样,因此您可以检查它的大小:
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")
}
}
我将它构建为“管道”可执行文件,这是它的工作原理:
$ ./pipe
Stdin is empty
$ echo test | ./pipe
5 bytes available in Stdin
- 2 回答
- 0 关注
- 214 浏览
添加回答
举报
0/150
提交
取消