我正在使用 exec 创建一个新命令,获取标准输入io.WriteCloser并将其写入如下:
cmd := exec.Command(flag.Arg(0), flag.Args()[1:]...)
cmdInWriter, err := cmd.StdinPipe()
err = cmd.Start()
go func() {
for {
var c string
_, err = fmt.Scanln(&c)
written, err := io.WriteString(cmdInWriter, c)
fmt.Println(written) // prints 4, if c is "help"
}
}()
但是,这似乎并没有真正写入程序。
flag.Arg(0)= 爪哇
flag.Args()[1:]...= 传递给 java 程序的参数数组
我用我快速制作的另一个程序对其进行了测试(之前的列表不适用于那里)并且字符串再次没有被写入。我究竟做错了什么?
慕哥6287543
相关分类