epoll 使用详解--epoll_create

epoll

  提供的api和poll类似:同时监控多个文件描述符的事件变化。同时epoll可以被设置为水平触发或者边缘触发。(这两种触发的区别后面会详细的讲解)。从用户空间去理解,可以将一个epoll实例看做,内核中创建了两个队列,一个等待队列和一个就绪队列。

头文件包含:

#include <sys/epoll.h>

epoll API

创建epoll:

int epoll_create(int size);
int epoll_create1(int flags);


  这两个接口都是创建一个epoll实例,成功返回对应的描述符,失败返回-1。此文件描述符用于所有对epoll接口,的后续调用。文件在不再需要使用的时候,应该使用close关闭。当所有文件描述符引用到一个epoll实例已经关闭,内核销毁实例,并释放相关资源以供重用。

  这两个接口功能稍有不同,epoll_create 的参数size表示是要指定这个epoll实例可以监控的最大的套接字个数,但是在 Linux 2.6.8 内核版本以后,这个参数内核已经不再处理了(就是没有限制了),但是必须要大于1。

posted @ 2022-03-25 12:28  核心已转储  阅读(801)  评论(0)    收藏  举报