如何用openEuler在一个进程中创建一个子进程,父进程调用相关系统调用等待子进程 结束。子进程结束后,父进程可以得到子进程的结束状态,并打印到控制台 上。
时间: 2023-03-30 08:02:33 浏览: 111
可以使用fork()函数创建子进程,使用wait()函数等待子进程结束并获取其结束状态,最后使用printf()函数将子进程的结束状态打印到控制台上。具体代码实现可以参考以下示例:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
int main() {
pid_t pid;
int status;
// 创建子进程
pid = fork();
if (pid < ) {
// 创建子进程失败
perror("fork error");
exit(1);
} else if (pid == ) {
// 子进程
printf("This is child process.\n");
exit();
} else {
// 父进程
printf("This is parent process.\n");
// 等待子进程结束并获取其结束状态
wait(&status);
if (WIFEXITED(status)) {
// 子进程正常结束
printf("Child process exited with status %d.\n", WEXITSTATUS(status));
} else if (WIFSIGNALED(status)) {
// 子进程被信号终止
printf("Child process terminated by signal %d.\n", WTERMSIG(status));
}
}
return ;
}
阅读全文