waitpid函数用法
时间: 2024-09-03 15:00:23 浏览: 108
Linux进程控制编程-waitpid函数实例.pdf
`waitpid`是一个Unix/Linux系统调用,用于等待指定进程的终止,并获取其状态信息。它的基本用法如下:
```c
#include <sys/wait.h>
int waitpid(pid_t pid, int *status, int options);
```
参数说明:
- `pid`: 需要等待的进程ID。可以是0(表示等待任意子进程),也可以是已经存在的子进程PID。
- `status`: 可选指针,用于接收等待进程的状态信息,通常是一个`siginfo_t`或`int*`类型的指针。
- `options`: 控制等待行为,如WUNTRACED(跟踪未中断的信号)、WNOHANG(无挂起返回,如果没有进程终止则立即返回0)等。
使用示例:
```c
pid_t child_pid = fork(); // 创建子进程
if (child_pid == 0) {
// 子进程执行一些任务...
exit(0); // 或者用return结束进程
} else if (child_pid > 0) { // 父进程
int status;
waitpid(child_pid, &status, WUNTRACED); // 等待子进程结束并获取状态
if (WIFEXITED(status)) {
printf("Child exited with status %d\n", WEXITSTATUS(status));
} else if (WIFSIGNALED(status)) {
printf("Child terminated by signal %d\n", WTERMSIG(status));
}
}
// 程序继续...
```
阅读全文