epoll机制

epoll一共需要三步:

//声明epoll类型的结构体,ev位要设置的变量,rev位返回时设置变量

1.   创建epoll机制

        int   epfd;

  struct   epoll_event   ev,   rev[count];

  epfd=epoll_create1(0)//参数为0或EPOLL_CLOEXEC

2.  配置epoll文件

  epoll_ctl (int epfd, int op, int fd, struct epoll_event *event)

  epfd:epoll机制文件描述符

  op:    执行什么操作

     EPOLL_CTL_ADD:添加一个文件描述符到epoll机制中

     EPOLL_CTL_ADD :

     EPOLL_CTL_ADD:删除一个文件文件描述符

  fd:要对哪一个文件描述符进行操作

  struct   epoll_event{

      uint32_t     event;  //要监听的事件  //EPOLLIN |  EPOLLIN | EPOLLIN....

       epoll_data_t  data;//data是一个联合体,一般常用*ptr或fd

  }

 3.  阻塞等待事件

  epoll_wait(int epfd,  struct epoll_event *events,int maxevents,int timeout)

   epfd:epoll文件描述符

      events:事件发生后用于记录的数组,如上声明的rev;

   maxevents:最大监听(并发)数量

     timeout:-1代表永不超时,无触发则阻塞。q       

猜你喜欢

转载自www.cnblogs.com/edan/p/8986838.html