【发布时间】:2014-04-06 02:49:38
【问题描述】:
我不确定我是否正确执行此操作,我正在尝试通过...创建总共 7 个进程...
void err_sys(const char* x)
{
perror(x);
exit(1);
}
for(i = 1; i < 7; i++){
switch(parent = fork()){
case -1:
err_sys("fork error");
case 0: //child
printf("I'm the child, number %d(%d)\n", i, getpid());
break;
default: //parent
printf("I'm the parent(%d)\n", getpid());
break;
}
if(parent)
break; //loop break
}
当我用 prog | 运行它时cat > file 我得到 6 个“我是父母”的输出,每个输出都有不同数量的孩子。但是,有 6 个孩子是用独特的 pid 制作的。其他父 pid,除了第一个匹配子 pid。这只是由于分叉而导致输出的一些问题吗?
【问题讨论】:
标签: c switch-statement fork wait