我做了一个能够从命令行解析输入的程序。它通过std.in
很好地运作。但是,当我查阅官方文件以便进一步学习时,我发现有太多东西给我。
var (
Stdin = NewFile(uintptr(syscall.Stdin), "/dev/stdin")
)
我单独阅读func NewFile
,type uintpty
,Package syscall
的文档,但无法弄清楚整体。另外,我也不知道/dev/stdin
的含义。
除了go
之外,我从未学过另一种静态编程语言。我怎么能意识到stdin
的魔力?
答案 0 :(得分:6)
从syscall
包中,Stdin只是数字0:
var (
Stdin = 0
Stdout = 1
Stderr = 2
)
这只是因为posix标准是stdin附加到第一个文件描述符,0
由于stdin始终存在且默认打开,os.NewFile
只能将此文件描述符转换为os.File
,并使用标准Linux文件路径“/ dev / stdin”作为易于识别的文件名。