#include <stdio.h> #include <unistd.h> int main(){ int fpid = fork(); if(fpid == 0){ printf("%d I am Child 1. My parent is %d\n",getpid(),getppid()); //此子进程下一条语句将会执行return 0; }else if(fpid > 0){ int fpid2 = fork(); if(fpid2 == 0){ printf("%d I am Child 2. My parent is %d\n",getpid(),getppid()); //此子进程下一条语句将会执行return 0; }else if(fpid2 > 0){ printf("%d I am Parent. My children are %d,%d\n",getpid(),fpid,fpid2); }else{ printf("子进程fpid2创建失败\n"); } }else{ printf("子进程fpid创建失败\n"); } return 0; }
时间: 2024-03-25 15:37:03 浏览: 46
#include <stdio.h>
这是一个使用 fork() 函数创建子进程的 C 语言程序。该程序创建了两个子进程,第一个子进程被称为 Child 1,第二个子进程被称为 Child 2,而父进程被称为 Parent。程序输出的内容包括每个进程的进程 ID 和它的父进程的进程 ID。以下是该程序的运行结果:
```
5237 I am Parent. My children are 5238,5239
5238 I am Child 1. My parent is 5237
5239 I am Child 2. My parent is 5237
```
可以看出,父进程创建了两个子进程,每个子进程都输出了自己的进程 ID 和父进程的进程 ID。值得注意的是,每个子进程的下一条语句将会执行 return 0,因此它们会在输出完信息后立即结束。而父进程会在子进程结束后继续执行,直到执行完 return 0。
阅读全文