在go语言中如何将输入数据管道化给执行中的子进程?
在你的go语言开发的程序正在通过os/exec执行一个子进程,你想用管道将输入数据传送给执行中的进程。
解决方案:
使用StdinPipe()方法并发出.Write([]byte(your data))来向执行中的子进程输入数据。
示例代码:
package main
import (
"fmt"
"os/exec"
)
func main() {
cmd := exec.Command("cat")
stdin, err := cmd.StdinPipe()
//这里
stdin.Write([]byte("Hello World!"))
stdin.Close()
if err != nil {
panic(err)
}
data, err := cmd.Output()
if err != nil {
panic(err)
}
for k, v := range data {
fmt.Printf("key : %v, value : %v \n", k, string(v))
}
}
相关文章:
在go语言中使用os.Exec()函数执行一条shell命令到另一个命令的管道输出
https://www.zongscan.com/demo333/96344.html
相关文章