“epoll errno 4” —— epoll遭遇EINTR(Interrupted system call)

使用epoll编写了一个父进程、子进程通过fifo通信的小程序,在调试的过程中发现,每次kill子进程的时候,epoll都会报错Interrupted system call,错误号为EINTR(4)。意思大约是epoll_wait被更高级的系统调用打断,上网上搜了一下发现有人说可以忽略这种错误,于是让epoll报错误号为4时,再次做一次epoll_wait

 

while(1) { ...... nfds = epoll_wait (kdpfd, events, curfds, -1); if (nfds == -1) { if (errno == EINTR) { continue; } else { wisLog->error("epoll_wait error, %s",strerror (errno)); break; } } ...... }   

参考 http://bbs3.chinaunix.net/thread-1585865-1-3.html

 

你可能感兴趣的:(Linux开发)