在Go中读取命令的结果

时间:2017-01-12 18:03:58

标签: go

https://play.golang.org/p/ljovw4QPSl。 此函数在本地执行命令并返回stdout和stderr。它大部分时间都有效,但有时第55行的stdoutbuf.ReadFrom()调用会返回read |0: bad file descriptor。我无法弄清楚代码有什么问题。

1 个答案:

答案 0 :(得分:1)

在您的命令程序退出并收集之前,没有什么可以保证您的goruoutine被执行。如果您在每个goroutine的开头添加了一个睡眠时间超过命令的生命周期,那么每次都会看到此错误。

在调用Wait命令之前先等待goroutines。这将确保您的goroutine可以继续阅读过程。