【发布时间】:2017-01-07 21:32:21
【问题描述】:
我试图用管道来理解 C 中的进程间通信。 在下面的代码 sn-p 中,我分叉了我的程序。 这就是为什么我认为这两个过程都应该工作而无需等待另一个。但是当我跑步时,我可以打字。在我的键盘中,然后,父进程以大写字母打印出我输入的文本并打印出消息“你好,我是父进程进程。我已经等待了。”
就是这个顺序:
你好!我是子进程。为什么我的父进程在等我?
测试输入
测试输入
你好,我是父进程进程。我已经等了。
进程以退出代码 0 结束
但我例外的是两者都是并行运行的,所以父进程应该在我进入之前退出...... 另外,我不明白为什么在收到消息“您好,我是父进程进程。我已经等待了。”之前,我将文本转换为大写字母。在我的代码中,它的顺序相反。首先我打印出信息,然后,我用大写字母打印出“测试输入”。
这是我的代码: https://github.com/marvpaul/CPipesTest/blob/master/main.c
【问题讨论】:
-
我玩了一下这段代码,似乎 n = read(fd[0], zeile, MAX_ZEICHEN);在继续之前等待任何输入。到目前为止?
标签: multithreading process pipe ipc child-process