linux

Linux的waitpid()函数怎么使用

小亿
105
2023-09-05 17:42:54
栏目: 智能运维

waitpid()函数是用来等待子进程结束的函数,其原型如下:

#include <sys/types.h>
#include <sys/wait.h>
pid_t waitpid(pid_t pid, int *status, int options);

参数说明:

返回值:

下面是一个示例代码,演示了如何使用waitpid()函数等待子进程结束:

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
int main() {
pid_t pid = fork();  // 创建子进程
if (pid < 0) {
perror("fork");
exit(1);
} else if (pid == 0) {
// 子进程执行的代码
printf("Child process: My PID is %d\n", getpid());
sleep(2);  // 子进程休眠2秒
exit(0);   // 子进程退出
} else {
// 父进程执行的代码
printf("Parent process: My PID is %d\n", getpid());
int status;
pid_t child_pid = waitpid(pid, &status, 0);  // 等待子进程结束
if (child_pid < 0) {
perror("waitpid");
exit(1);
}
if (WIFEXITED(status)) {
printf("Child process %d exited with status %d\n", child_pid, WEXITSTATUS(status));
}
}
return 0;
}

运行以上代码,将输出父进程的PID、子进程的PID以及子进程的退出状态。

0
看了该问题的人还看了