我正在閱讀 go exec 源代碼。https://cs.opensource.google/go/go/ /refs/tags/go1.17.3:src/os/exec/exec.go
當 Stdinpipe 被呼叫時,讀取器被添加到陣列 closeAfterStart 中。當呼叫 Start() 時,讀取器關閉。我不確定為什么他們在開始這個程序后就關閉了閱讀器。
uj5u.com熱心網友回復:
為了反映佩內洛普史蒂文斯所說的,os.Pipe 映射到底層 os 檔案管道。當 os.Pipe 回傳的 *os.File 關閉時,它已經傳遞給新的衍生行程。close 將關閉此行程中的檔案描述符,但生成的行程仍然可以從該管道讀取/寫入。
檔案描述符在這里抓取:https ://cs.opensource.google/go/go/ /refs/tags/go1.17.3: src/ os/exec/exec.go;l=404-415; drc=refs /tags/go1.17.3
然后用 ProcAttr 傳遞給生成的行程:https ://pkg.go.dev/os#ProcAttr
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/371079.html
標籤:走
上一篇:MongoDB不保存時間戳
下一篇:從/在VSCODE中洗掉無效字符
