登录
首页 >  Golang >  Go问答

exec中closeAfterStart的目的是什么

来源:stackoverflow

时间:2024-04-28 09:45:32 414浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《exec中closeAfterStart的目的是什么》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

问题内容

我正在阅读 go exec 源代码。 https://cs.opensource.google/go/go/+/refs/tags/go1.17.3:src/os/exec/exec.go

调用 Stdinpipe 时,读取器将添加到数组 closeAfterStart 中。当 Start() 被调用时,阅读器被关闭。我不确定为什么他们在启动进程后就关闭阅读器。


正确答案


为了反映 Penélope Stevens 所说的, os.Pipe 映射到底层 os File 管道。当 os.Pipe 返回的 *os.File 关闭时,它已经被传递给新生成的进程。关闭将关闭此进程中的文件描述符,但生成的进程仍然可以从该管道读取/写入。

此处获取文件描述符:https://cs.opensource.google/go/go/+/refs/tags/go1.17.3:src/os/exec/exec.go;l=404-415;drc=refs%2Ftags%2Fgo1.17.3

然后使用 ProcAttr 传递给生成的进程:https://pkg.go.dev/os#ProcAttr

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《exec中closeAfterStart的目的是什么》文章吧,也可关注golang学习网公众号了解相关技术文章。

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