exec.Command管道实现循环输入

阅读 352 次  4 条评论
目前有一个程序需要启用另外一个code.exe程序来做转码处理 此程序运行后是一个死循环的,就等待输入按回车后就返回相应的解码数据 现在用exec.Command启动程序后就只能使用管道输入一次,代码如下 ``` cmd := exec.Command("./code.exe") var pipIn,pipOut bytes.Buffer cmd.Stdin = &pipIn cmd.Stdout = &pipOut cmd.Run() pipIn.WriteString(fmt.Sprintf("%s\n", "35063812556aa2cdd6d1cbd")) time.Sleep(time.Millisecond * 500) fmt.Println(strings.Replace(pipOut.String(), "\n", "", 1)) pipIn.WriteString(fmt.Sprintf("%s\n", "350632125e6aa2cdded1c")) time.Sleep(time.Millisecond * 500) fmt.Println(strings.Replace(pipOut.String(), "\n", "", 1)) ``` 并不能得到第二次输入的数据解码后的结果 可有其它方法实现长时运行code.exe程序,可以循环输入并得到输出结果的方法? 类似于python的spawn 新手对标准库还不熟悉,还请各大神指教!

4条回复

主题回复:

(您需要 登录 后才能回复 没有账号 ?)
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet