用进程相关api函数编程一个程序,使之产生一个进程扇,父进程产生一系列子进程(4个),每个子进程打印自己的pid然后退出。要求进程最后打印pid
时间: 2024-09-29 08:01:50 浏览: 28
33.写一个jdbc的访问oracle的列子.avi
在C语言中,我们可以使用`fork()`和`exit()`函数来创建和管理进程。下面是一个简单的程序示例,它实现了你的需求:
```c
#include <stdio.h>
#include <unistd.h> // 包含 fork() 和 exit() 函数
// 主函数 (parent process)
int main() {
int i;
// 创建进程数组,用于存储子进程的PID
pid_t child_pids[4];
// 循环创建四个子进程
for (i = 0; i < 4; i++) {
// fork() 函数创建新进程,返回值为子进程的PID(当前进程是父进程)
if (fork() == 0) { // 子进程
printf("Child Process %d, PID: %d\n", i+1, getpid()); // 打印子进程信息并退出
exit(0); // 子进程结束
} else { // 父进程
child_pids[i] = wait(NULL); // 等待子进程完成
printf("Parent Process, PID: %d, Child Process %d exited with PID: %d\n", getpid(), i+1, child_pids[i]); // 打印父进程信息
}
}
return 0;
}
```
在这个程序中,主进程中通过循环调用`fork()`创建了四个子进程。每次`fork()`后,如果返回的是0,那么当前执行的就是子进程;否则,就是父进程。子进程打印自己的PID后,通过`exit(0)`立即结束。
父进程等待每个子进程完成后,通过`wait()`函数接收子进程的退出状态,然后继续打印父进程的信息。
运行这个程序,你会看到父进程生成的子进程及其退出后的PID信息。
阅读全文