struct epoll_event
一般是在 <sys/epoll.h>
头文件中定义
struct epoll_event {
uint32_t events; // epoll 事件类型,包括可读,可写等
epoll_data_t data; // 用户数据,可以是一个指针或文件描述符等
};
其中,events
字段表示要监听的事件类型,可以是以下值之一:
-
EPOLLIN
:表示对应的文件描述符上有数据可读 -
EPOLLOUT
:表示对应的文件描述符上可以写入数据 -
EPOLLRDHUP
:表示对端已经关闭连接,或者关闭了写操作端的写入 -
EPOLLPRI
:表示有紧急数据可读 -
EPOLLERR
:表示发生错误 -
EPOLLHUP
:表示文件描述符被挂起 -
EPOLLET
:表示将epoll设置为边缘触发模式 -
EPOLLONESHOT
:表示将事件设置为一次性事件
data
字段表示用户数据,它的类型是一个union,可以存放一个指针或文件描述符等数据。它的定义如下:文章来源:https://www.toymoban.com/news/detail-661236.html
typedef union epoll_data {
void *ptr;
int fd;
uint32_t u32;
uint64_t u64;
} epoll_data_t;
其中,ptr
可以指向任何类型的用户数据,fd
表示文件描述符,u32
和u64
分别表示一个32位和64位的无符号整数。使用时,用户可以将自己需要的数据存放到这个字段中,当事件触发时,epoll系统调用会返回这个数据,以便用户处理事件。文章来源地址https://www.toymoban.com/news/detail-661236.html
到了这里,关于epoll_event结构体定义的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!