当前位置: 技术问答>linux和unix
epoll中epoll_event结构体的含义
来源: 互联网 发布时间:2017-02-03
本文导语: 不知道大家在用到epoll的时候wait返回的epoll_event结构体中用到过data; 结构如下: struct epoll_event { uint32_t events; /* Epoll events */ epoll_data_t data; /* User data variable */ } __attribute__ ((__packed__)); typedef union...
不知道大家在用到epoll的时候wait返回的epoll_event结构体中用到过data;
结构如下:
struct epoll_event
{
uint32_t events; /* Epoll events */
epoll_data_t data; /* User data variable */
} __attribute__ ((__packed__));
typedef union epoll_data
{
void *ptr;
int fd;
uint32_t u32;
uint64_t u64;
} epoll_data_t;
epoll_data中的fd是文件描述符,这个很好理解,其他的呢
ptr是指向这个fd的指针?u32和u64分别是做什么的? 有什么作用?有高人出来讲解下吗?
结构如下:
struct epoll_event
{
uint32_t events; /* Epoll events */
epoll_data_t data; /* User data variable */
} __attribute__ ((__packed__));
typedef union epoll_data
{
void *ptr;
int fd;
uint32_t u32;
uint64_t u64;
} epoll_data_t;
epoll_data中的fd是文件描述符,这个很好理解,其他的呢
ptr是指向这个fd的指针?u32和u64分别是做什么的? 有什么作用?有高人出来讲解下吗?
|
关于u32和u64我觉得是为了对齐,保证这个联合体长度为8个字节。
看了一下sys_epoll_×的实现,可以看到内核里epoll_event的定义
内核里会将传过去的epoll_event拷贝到上面的结构里。
看了一下sys_epoll_×的实现,可以看到内核里epoll_event的定义
struct epoll_event {
__u32 events;
__u64 data;
内核里会将传过去的epoll_event拷贝到上面的结构里。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。