所谓进程链就是父进程创建一个子进程,创建的子进程再次创建出属于自己的子进程,这样依次往下循环,如下图所示。
所谓的进程扇就是一个父进程创建出多个子进程,如下图所示。
代码:
创建进程扇:
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#define n 5
//创建进程扇
int main()
{
for (int i = 0; i < n; i++)
{
pid_t fork_ret = fork();
if (fork_ret == -1)
{
perror("fork");
exit(-1);
}
else if (fork_ret == 0) //判断是不是子进程
{
printf("子进程[%d], %ld\n", i, (long)getpid());
exit(0);
}
wait(NULL);
}
printf("父进程的id:%ld\n", (long)getppid());
sleep(1);
}
功能实现:
创建进程链:
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#define n 5
//创建进程链
int main()
{
for (int i = 0; i < n; i++)
{
pid_t fork_ret = fork();
if (fork_ret == -1)
{
perror("fork");
exit(-1);
}
else if (fork_ret > 0) //判断是不是父进程
{
printf("父进程id:%ld\n", (long)getppid());
exit(0);
}
}
printf("子进程的id:%ld",(long)getpid());
sleep(1);
}
功能实现: