编写linux下的c程序,用fork函数创建一个子进程,要求子进程输出“我是子进程,正在测试中”,父进程调用waitpid函数等待子进程结束后再输出“我是子进程,正在测试中”
时间: 2024-03-01 17:54:37 浏览: 57
Linux中使用C语言的fork()函数创建子进程的实例教程
好的,下面是代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
int main() {
pid_t pid;
int status;
pid = fork();
if (pid < 0) {
fprintf(stderr, "Fork failed!\n");
exit(EXIT_FAILURE);
} else if (pid == 0) {
printf("我是子进程,正在测试中\n");
exit(EXIT_SUCCESS);
} else {
waitpid(pid, &status, 0);
printf("我是父进程,正在测试中\n");
}
return 0;
}
```
首先通过 `fork()` 函数创建子进程,如果失败,则输出错误信息并退出。如果是子进程则直接输出信息并退出,否则父进程通过 `waitpid()` 函数等待子进程结束,再输出信息。
注意在子进程中需要使用 `exit()` 函数退出程序,否则会继续执行父进程的代码。在父进程中,`waitpid()` 函数会阻塞等待子进程结束,等到子进程结束后再继续执行后面的代码。
编译运行程序,输出应该如下:
```
我是子进程,正在测试中
我是父进程,正在测试中
```
阅读全文