【发布时间】:2018-11-12 18:36:23
【问题描述】:
所以我的这个伙伴来寻求一些 fork/pipe 的帮助,但他的代码不起作用。
一开始我只是把它归咎于一团糟,但后来我开始阅读更多内容,我开始剥离所有可能是错误的东西,最终得到了这个。
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <wait.h>
typedef void (*tFunction)();
pid_t CreateProcess(tFunction toExecute){
pid_t pid = fork();
if(pid)return pid;
else {toExecute();exit(0);}
}
void Producer_1(){
printf("IM PROCESS 1\n");
printf("Why I no print");
while(1){}
}
int main(){
CreateProcess(Producer_1);
wait(0);
}
输出为:
之后它保持不变,但是这里的 printf 是怎么回事?
如果您在最后一个字符串的末尾放置一个换行符,它会起作用。
【问题讨论】: