#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
void CreateSubProcess(int num);
int main(int argc, char *argv[])
{
CreateSubProcess(5);
}
void CreateSubProcess(int num)
{
pid_t pid;
int i;
for(i = 0; i < num; i++) {
sleep(1);
pid = fork();
if(pid == 0 || pid == -1) // 子进程或错误时, 退出 for 循环继续执行下面的
break;
}
if(pid == -1) {
perror("fail to fork!\n");
exit(1);
} else if(pid == 0) {
printf("child pid = %d, parent pid = %d\n", getpid(), getppid());
} else {
printf("all child's parent pid = %d\n", getpid(), getpid());
}
exit(0);
}
0 件のコメント:
コメントを投稿