美文网首页Go语言用例Go知识库
golang父进程通过管道向子进程传递数据

golang父进程通过管道向子进程传递数据

作者: CodingCode | 来源:发表于2018-04-16 14:24 被阅读6次

golang父进程通过管道向子进程传递数据

这里例子里面父进程launch一个子进程,然后通过管道(stdin)向子进程传递文本串。

父进程:

package main

import (
    "log"
    "os/exec"
)

func main() {

    cmd := exec.Command("./subprocess")
    cmdIn, _ := cmd.StdinPipe()

    cmdIn.Write([]byte("hello subprocess\ngoodbye subprocess"))
    cmdIn.Close()

    var err error = cmd.Run();
    if err != nil {
        log.Fatal(err)
    }
}

子进程:

$ cat subprocess.go 
package main

import (
    "io/ioutil"
    "os"
    "time"
)

func main() {

    data, err := ioutil.ReadAll(os.Stdin)
    if err != nil {
        ioutil.WriteFile("subprocess.out", []byte(err.Error()), 0644)

    } else {
        ioutil.WriteFile("subprocess.out", data, 0644)
    }

    time.Sleep(time.Duration(1) * time.Second)
}

相关文章

  • golang父进程通过管道向子进程传递数据

    golang父进程通过管道向子进程传递数据 这里例子里面父进程launch一个子进程,然后通过管道(stdin)向...

  • Linux网络程序设计练习

    进程间的通信和同步 题目1:编写C语言程序,要求创建子进程,实现父进程通过管道的方式向子进程发送消息,子进程在收到...

  • 进程

    每个进程都可以通过系统调用fork来创建子进程,子进程复制父进程的数据段、堆、栈和代码段。全盘复制父进程的数据会很...

  • 进程间通信-利用共享内存和管道通信实现聊天窗口

    问题模型 A、B两个进程通过管道通信,A 进程每次接收到的数据通过共享内存传递给A1进程显示,同理,B进程每次接收...

  • fork与vfork的区别2020-05-04

    1.数据共享方面: fork ():子进程拷贝父进程的数据段,代码段 vfork( ):子进程与父进程共享...

  • fork 进程测试 copy-on-write

    父进程 fork 子进程后,子进程通过 copy-on-write 模式获得父进程内存,也就是子进程共用了大部分父...

  • vue子父组件通信

    子父组件传递数据 父组件===》子组件。父组件通过props向子组件中传递数据和改变数据的函数,通过在子组件中调用...

  • 弹窗设置(父子传参原理)

    父组件: 1.父组件向子组件传递数据父组件绑定属性,给子组件传递数据子组件通过props接收父组件传递过来的数据子...

  • vue组件间的通讯

    父子通信: 父向子传递数据是通过 props,子向父是通过 $emit;通过 $parent / $childre...

  • 孤儿进程和僵尸进程

    基本概念 在unix/linux中,正常情况下,子进程是通过父进程创建,子进程再创建新的进程。子进程的结束和父进程...

网友评论

    本文标题:golang父进程通过管道向子进程传递数据

    本文链接:https://www.haomeiwen.com/subject/eycekftx.html