各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题是《为什么 Go 程序将输出打印到终端屏幕而不是 /dev/stderr?》,很明显是关于golang的文章哈哈哈,其中内容主要会涉
各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题是《为什么 Go 程序将输出打印到终端屏幕而不是 /dev/stderr?》,很明显是关于golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!
问题内容正如我在golang的源码中看到的
go 会将输出打印到 os.stderr
,即
stderr = newfile(uintptr(syscall.stderr), "/dev/stderr")
那么为什么我使用命令 go run main.go
在终端中运行这个程序
输出打印到终端屏幕,而不是 /dev/stderr
// main.go
func main() {
log.Println("this is my first log")
}
在标准 unix/linux 终端中,stdout
和 stderr
都连接到终端,以便输出到达那里。
这里有一个 shell 片段来澄清这一点:
$ echo "joe" >> /dev/stderr
joe
即使我们将“joe”回显给看起来像文件的东西,它也会被发送到屏幕上。将 /dev/stderr
替换为 /tmp/foo
,您将不会在屏幕上看到输出(尽管它会附加到文件 /tmp/foo
)
在 go 中,您可以通过将流传递给第一个参数中的 fmt.fprintf
等函数来专门选择要输出到的流。
今天关于《为什么 go 程序将输出打印到终端屏幕而不是 /dev/stderr?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在编程网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!
--结束END--
本文标题: 为什么 go 程序将输出打印到终端屏幕而不是 /dev/stderr?
本文链接: https://www.lsjlt.com/news/596865.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-05
2024-04-05
2024-04-05
2024-04-04
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0