waitpid(p1, &status, 0); waitpid(p2, &status, 0);显示没有waitpid
时间: 2023-06-19 09:09:46 浏览: 71
详解C语言中的wait()函数和waitpid()函数
在使用 `waitpid()` 函数时,需要注意以下几点:
1. `waitpid()` 函数的第一个参数是要等待的子进程的进程 ID,第二个参数是用于存储子进程状态的指针,第三个参数是一组选项,用于指定等待子进程的行为。
2. 如果你想等待两个子进程,那么你需要调用 `waitpid()` 函数两次,每次传递一个子进程的进程 ID。
3. 如果你在等待子进程时遇到问题,可以使用 `perror()` 函数输出错误信息,帮助你进行调试。
根据你提供的代码片段,我猜测你可能没有包含 `sys/wait.h` 头文件,这个头文件包含了 `waitpid()` 函数的声明。如果没有包含这个头文件,编译器会认为 `waitpid()` 函数未定义,从而导致编译错误。
另外,你可能需要为两个子进程分别定义一个变量来存储它们的状态,而不是使用同一个变量 `status`。这是因为 `waitpid()` 函数会将子进程的状态信息写入到它的第二个参数中,所以如果你使用同一个变量来存储两个子进程的状态,后一个子进程的状态信息会覆盖前一个子进程的状态信息,从而导致错误的结果。
阅读全文