、编写一个程序,创建一个子进程。要求如下: ①在子进程中输出当前进程为子进程的提示,当前进程的PID和父进程的PID; ②在父进程中输出当前进程为父进程的提示,当前进程的PID和子进程的PID,等待子进程退出后,输出子进程已结束的提示。C语言
时间: 2024-09-28 18:14:03 浏览: 53
在C语言中,可以使用`fork()`系统调用来创建子进程,`wait()`函数用于等待子进程完成。下面是一个简单的示例程序,实现了您的要求:
```c
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
#define MAX_LINE_LENGTH 50
int main() {
int pid;
// 创建子进程
pid = fork(); // 如果返回0,表示是子进程;如果大于0,表示是父进程
if (pid == 0) {
printf("子进程开始,我的PID: %d, 父进程PID: %d\n", getpid(), getppid());
sleep(1); // 等待一段时间以便观察输出
exit(0); // 子进程正常结束
} else {
printf("父进程开始,我的PID: %d, 子进程PID: %d\n", getpid(), pid);
// 父进程等待子进程结束
wait(NULL); // 等待子进程的终止状态
printf("子进程已结束\n");
}
return 0;
}
```
在这个程序中,首先使用`fork()`创建子进程。如果返回值为0,那么该进程就是子进程,它会打印出相关信息并立即结束。如果返回值大于0,则原进程成为父进程,它等待子进程结束后,打印出子进程已结束的信息。
运行这个程序,可以看到父子进程交互的输出。注意,子进程的结束并不是立刻的,因为它通过`sleep(1)`暂停了一秒钟。
阅读全文