epoll的基本介绍、简单操作与具体实现.docVIP

  • 2
  • 0
  • 约1.88万字
  • 约 20页
  • 2017-06-17 发布于湖北
  • 举报

epoll的基本介绍、简单操作与具体实现.doc

Epoll基本介绍 在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于 select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd 数目越多,自然耗时越多。并且,在linux/posix_types.h头文件有这样的声明: #define __FD_SETSIZE??? 1024 表示select最多同时监听1024个fd,当然,可以通过修改头文件再重编译内核来扩大这个数目,但这似乎并不治本。 epoll的接口非常简单,一共就三个函数: 1.int epoll_create( int size ); //int close(int epfd); 创建一个epoll的句柄,size用来告诉内核这个监听的数目一共有多大。这个参数不同于select()中的第一个参数,给出最大监听的fd+1的值。需要注意的是,当创建好epoll句柄后,它就是会占用一个fd值,在linux下如果查看/proc/进程id/fd/,是能够看到这个fd的,所以在使用完epoll后,必须调用close()关闭,否则可能导致fd被耗尽。 2.int epoll_ctl(int epfd, int op, int fd, struct epoll_

文档评论(0)

1亿VIP精品文档

相关文档