iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >为什么 go 程序将输出打印到终端屏幕而不是 /dev/stderr?
  • 839
分享到

为什么 go 程序将输出打印到终端屏幕而不是 /dev/stderr?

2024-04-04 23:04:16 839人浏览 泡泡鱼
摘要

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题是《为什么 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 终端中,stdoutstderr 都连接到终端,以便输出到达那里。

这里有一个 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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作