【发布时间】:2018-06-19 03:00:34
【问题描述】:
我不明白应该在哪里使用 wait(NULL) 或 while(pid = wait(&status))>0)。我很困惑,我得到了奇怪的结果,请帮忙!
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main (int argc, char *argv[]) {
pid_t childpid = 0;
int i, n;
if (argc != 2){ /* check for valid number of command-line arguments */
fprintf(stderr, "Usage: %s processes\n", argv[0]);
return 1;
}
n = atoi(argv[1]);
for (i = 1; i < n; i++)
if ((childpid = fork()) <= 0)
break;
fprintf(stderr, "i:%d process ID:%ld parent ID:%ld child ID:%ld\n",
i, (long)getpid(), (long)getppid(), (long)childpid);
return 0;
}
您将如何修改此代码,以便原始进程在所有子进程都退出后打印出其信息?
您将如何修改此代码,以便进程在其子进程退出后打印其信息?
【问题讨论】:
标签: c fork parent-child wait