在go语言中如何将输入数据管道化给执行中的子进程?

2023-06-01 00:00:00 进程 管道 如何将

在你的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


相关文章