登录
首页 >  Golang >  Go问答

为何 os/exec.StdoutPipe 的 writer 在 Start() 调用后关闭?

来源:stackoverflow

时间:2024-03-11 09:21:25 437浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《为何 os/exec.StdoutPipe 的 writer 在 Start() 调用后关闭?》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

有人可以帮我理解为什么 pw (作者)计划在 Start() 中关闭吗?

我希望 pw 在 Wait() 中与 pr (读者)一起关闭。


解决方案


closeAfterStartcloseAfterWaitio.Closers 的两个切片,分别在 StartWaitcmd 结构中调用。现在,这是为什么呢?这两个基本上都是缓冲区(切片),需要将其写入读取。根据当前是否正在使用,它们将被关闭。例如 StdInPipe 需要先读取然后写入,因此 pr 包含在 closeAfterStart 中,pw 包含在 closeAfterWait 中。 StdOutPipe 则执行相反的操作。

程序只是关闭了代码中不再需要的缓冲区。在 StdErrPipe 中,执行命令后调用该函数,将错误输出写入某些输出。因此,程序已经有了需要写入的输出。

理论要掌握,实操不能落!以上关于《为何 os/exec.StdoutPipe 的 writer 在 Start() 调用后关闭?》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>