C语言 如何同时创建3个孤儿进程 请给出代码
时间: 2024-10-14 17:15:32 浏览: 28
在C语言中,孤儿进程通常指的是子进程在其父进程退出后自动成为init进程(PID为1)的子进程。如果你想创建三个独立运行、互不影响的孤儿进程,可以使用`fork()`函数三次,并分别处理返回值。以下是一个简单的示例:
```c
#include <stdio.h>
#include <unistd.h>
#define PROCESSES 3
int main() {
pid_t child[PROCESSES];
int i;
for (i = 0; i < PROCESSES; i++) {
if (fork() == 0) { // 子进程
printf("I am process %d, parent's PID is %d\n", getpid(), getppid());
exit(0); // 立即退出,不会影响其他子进程
} else {
child[i] = wait(NULL); // 父进程等待当前子进程结束
printf("Parent process %d terminated child process %d with PID %d.\n", getpid(), i+1, child[i]);
}
}
return 0;
}
```
在这个例子中,每个循环迭代都会创建一个新的孤儿进程。第一个孩子进程会立即终止,第二个和第三个孩子的生命周期由父进程控制,它们会被父进程接收到并终止。
阅读全文