waitpid () from /lib64/libc.so.6
时间: 2024-09-15 13:01:49 浏览: 94
libc.so.6 libc.so.6
`waitpid()` 是 UNIX 和类 UNIX 系统中的一个系统调用,用于父进程获取其子进程的状态信息。这个函数定义在 `<sys/wait.h>` 头文件中。当子进程结束时,父进程可以调用 `waitpid()` 来获取子进程的退出状态,同时这个调用还可以控制父进程是否等待子进程结束。
函数原型如下:
```c
#include <sys/wait.h>
pid_t waitpid(pid_t pid, int *stat_loc, int options);
```
其中各参数的含义如下:
- `pid`: 指定要等待的子进程的进程 ID。如果设置为 `-1`,则等待任意子进程。
- `stat_loc`: 指向一个整型的指针,用于存储子进程的退出状态。如果不需要退出状态,此参数可以设置为 NULL。
- `options`: 控制 `waitpid()` 的行为,可以是 `WNOHANG`(非阻塞模式)、`WUNTRACED`(等待子进程停止状态)、`WCONTINUED`(等待继续后的子进程状态)等的组合。
`waitpid()` 返回值:
- 如果调用成功,返回子进程的 PID。
- 如果发生错误,则返回 `-1`,并将错误信息存储在全局变量 `errno` 中。
`waitpid()` 与 `wait()` 的区别主要在于 `waitpid()` 提供了更多的控制选项,包括可以选择非阻塞方式等待子进程结束,以及可以指定等待特定的子进程。
阅读全文