作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有这段代码,当它完成文本提取等操作时,我还想从 cmd.Stdout
获得完整输出
func main() {
cmd := exec.Command("readinggame")
cmd.Stdout = os.Stdout
cmd.Run()
}
完成后,我似乎无法找到以 []byte
或 string
形式获取输出的方法。顺便说一句,我不想用 ReadLine
(或类似的东西)来迭代输出,这恰好工作得很好,我只是想要一个完整的输出,比如
var out bytes.Buffer
cmd.Stdout = &out
if err := cmd.Run(); err != nil {
log.Fatal(err)
}
fmt.Println(out.String())
最佳答案
这正是预期的结果...所需要的只是 io.MultiWriter
。
func main() {
cmd := exec.Command("ping", "google.com")
var out bytes.Buffer
multi := io.MultiWriter(os.Stdout, &out)
cmd.Stdout = multi
if err := cmd.Run(); err != nil {
log.Fatalln(err)
}
fmt.Printf("\n*** FULL OUTPUT *** %s\n", out.String())
}
关于go - 如何从 exec.Command 获取完整的 Stdout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37024713/
我是一名优秀的程序员,十分优秀!