当前位置:  技术问答>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分别是做什么的? 有什么作用?有高人出来讲解下吗?

|
关于u32和u64我觉得是为了对齐,保证这个联合体长度为8个字节。
看了一下sys_epoll_×的实现,可以看到内核里epoll_event的定义

struct epoll_event {
    __u32 events;
    __u64 data;

内核里会将传过去的epoll_event拷贝到上面的结构里。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • epoll_ctl(,EPOLL_CTL_DEL,); 的问题!!!
  • 第一次用epoll就傻眼,程序报create_epoll error Function not implemented
  • 为Qt添加epoll的高性能I/O复用 qt_eventdispatcher_epoll
  • epoll可读的问题 iis7站长之家
  • epoll_ctl(epfd, EPOLL_CTL_ADD, fd, &event)为何老返回-1
  • epoll 退出
  • 关于epoll的几个疑问
  • 大家好,问个问题,关于EPOLL的。。。
  • epoll并发问题
  • 有人碰到过epoll丢信号吗
  • epoll异常问题
  • epoll模型如何限制最大连接数
  • epoll可读的问题
  • python实现Linux异步epoll代码
  • epoll多路复用模型的疑惑,请高手解答
  • epoll,socket超时如何设置?
  • epoll的一个问题
  • linux并发服务器中epoll+多线程分别怎么理解?
  • 关于epoll的链接库
  • 谁能解释一下epoll、libevent、zeroMQ的区别?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3