当前位置:  技术问答>linux和unix

epoll_ctl()的参数似乎有个冗余的地方,求教!

    来源: 互联网  发布时间:2017-04-14

    本文导语:  int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);   typedef union epoll_data {                void *ptr;                int fd;                __uint32_t u32;                __uint64_t u64;      ...


int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
  typedef union epoll_data {
               void *ptr;
               int fd;
               __uint32_t u32;
               __uint64_t u64;
           } epoll_data_t;

           struct epoll_event {
               __uint32_t events;      /* Epoll events */
               epoll_data_t data;      /* User data variable */
           };

问题是:epoll()函数的第三个参数int fd和epoll_event.data.fd这两个fd必须是同一个东西吗?

什么时候必须是同一个东西,什么时候可以是不同的fd?

|
epoll_ctl的events是输入参数,你可以用一个event->data.ptr来和epoll_ctrl的第二个参数fd做绑定,在epoll_wait的时候,events是输出参数,用于返回和fd相关联的event,此时取出ptr,强转之后,就可以做你自己的消息响应了。

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • epoll_ctl(,EPOLL_CTL_DEL,); 的问题!!!
  • epoll_ctl(epfd, EPOLL_CTL_ADD, fd, &event)为何老返回-1


  • 站内导航:


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

    ©2012-2021,