I/O复用 - epoll模型

优质
小牛编辑
132浏览
2023-12-01

主要函数

函数描述
[[epoll_createepoll_create]]创建一个epoll的文件描述符
[[epoll_ctlepoll_ctl]]epoll的事件注册函数
[[epoll_waitepoll_wait]]收集在epoll监控的事件中已经发送的事件

结构体

epoll_event

  1. typedef union epoll_data {
  2. void *ptr;
  3. int fd;
  4. uint32_t u32;
  5. uint64_t u64;
  6. } epoll_data_t;
  7. struct epoll_event {
  8. __uint32_t events; /* Epoll events */
  9. epoll_data_t data; /* User data variable */
  10. };

HINT

epoll_create生成的epfd,是内核中epoll结构的唯一标识。epoll结构不直接面向应用程序员。它维持着每个epoll处理要监视的fd及其感兴趣事件。要修改它只能通过epoll_ctl。