租用问题

质量为本、客户为根、勇于拼搏、务实创新

< 返回租用问题列表

waitpid使用时出现EINTER错误怎么解决,wait plz

发布时间:2023-08-07 07:55:17

waitpid使用时出现EINTER毛病怎样解决

在使用`waitpid`函数时,如果出现`EINTR`毛病,表示调用被中断,即接收到了一个信号。解决这个问题的一种方法是重新调用`waitpid`函数。
可使用一个循环来重试`waitpid`函数,直到成功返回还是出现其他毛病。示例代码以下:
```c
#include
#include
#include
#include
pid_t waitpid_retry(pid_t pid, int *status, int options) {
pid_t result;
while ((result = waitpid(pid, status, options)) == ⑴) {
if (errno == EINTR) {
continue; // 被中断,则重新履行waitpid
} else {
perror("waitpid");
break;
}
}
return result;
}
```
在调用`waitpid_retry`函数时,如果返回值不是⑴,表示等待成功,否则可以根据需要进行处理。
注意:`waitpid_retry`函数只是一种简单的处理方式。在实际使用中,可能需要根据具体需求做出适当的修改。