52 lines
1.0 KiB
C
52 lines
1.0 KiB
C
|
/**********************************************
|
|||
|
创建一个子进程,打印hello后父进程打印world,之后父进程再创建两条进程,一个进程打印end,另一个进程打印...
|
|||
|
**********************************************/
|
|||
|
|
|||
|
#include <stdio.h>
|
|||
|
#include <sys/types.h>
|
|||
|
#include <unistd.h>
|
|||
|
#include <sys/wait.h>
|
|||
|
|
|||
|
int main()
|
|||
|
{
|
|||
|
// 创建子进程
|
|||
|
pid_t pid = fork();
|
|||
|
|
|||
|
// 错误处理
|
|||
|
if (pid < 0)
|
|||
|
{
|
|||
|
printf("创建子进程失败\n");
|
|||
|
return -1;
|
|||
|
}
|
|||
|
|
|||
|
// 子进程
|
|||
|
else if (pid == 0)
|
|||
|
{
|
|||
|
printf("hello\n");
|
|||
|
}
|
|||
|
|
|||
|
// 父进程
|
|||
|
else
|
|||
|
{
|
|||
|
wait(NULL); // 等待子进程结束
|
|||
|
|
|||
|
printf("world\n");
|
|||
|
|
|||
|
// 创建两个新的子进程
|
|||
|
pid_t pid1 = fork();
|
|||
|
if (pid1 == 0)
|
|||
|
{
|
|||
|
printf("end\n");
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
pid_t pid2 = fork();
|
|||
|
if (pid2 == 0)
|
|||
|
{
|
|||
|
printf("...\n");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return 0; // 程序结束
|
|||
|
}
|