epoll_wait的作用
时间: 2023-11-30 19:04:05 浏览: 64
epoll机制epoll_create、epoll_ctl、epoll_wait、close(在epoll的ET模式下,read和write或send和recv当返回值0且errno=EAGAIN - linking530的专栏 - CSDN博客.mht
5星 · 资源好评率100%
epoll_wait函数是Linux系统中用于I/O多路复用的函数之一,它可以等待一个epoll文件描述符上的I/O事件,当有事件发生时,它会将所有就绪的事件从内核事件表中复制到它的第二个参数events所指向的数组中,并返回就绪事件的个数。该函数的原型如下:
```c
#include <sys/epoll.h>
int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);
```
其中,epfd是epoll_create函数返回的epoll文件描述符,events是用于存放就绪事件的数组,maxevents是events数组的大小,timeout是等待时间,单位是毫秒,如果timeout为-1,则表示永久等待,直到有事件发生。
需要注意的是,当一个线程在对epoll_pwait()的调用中被阻塞时,另一个线程有可能向等待的epoll实例添加文件描述符。如果新文件描述符准备就绪,它将导致epoll_wait()调用解除阻塞。
阅读全文