问题描述
我正在尝试制作 3 种进程(1 proc1、4 proc2 和 5 proc3)并使它们同时运行。我写了一些代码,但似乎没有重叠,即使使用 sleep()
函数,即进程总是以相同的顺序运行。我想知道这是否是创建多个进程的正确方法。
int main() {
setbuf(stdout,NULL);
setbuf(stderr,NULL);
int pid;
pid = fork();
if(pid < 0) {
fprintf(stderr,"Fork error.");
exit(2);
} else if(pid == 0){ //Child
proc1();
exit(0);
} else { //Parent
for(int i=0; i<4; i++) {
int child2ID = fork();
if(child2ID == 0) {
proc2();
exit(0);
}
}
for(int i=0; i<5; i++) {
int child3ID = fork();
if(child3ID == 0) {
proc3();
exit(0);
}
}
}
while(wait(NULL)) {
if(errno == ECHILD)
break;
}
return 0;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)