找回密码
 注册
关于网站域名变更的通知
查看: 271|回复: 1
打印 上一主题 下一主题

Linux ------- Linux epoll

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-7-31 13:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
Linux epoll事件触发
  {+ r& o; N0 r% Y' A- h9 E( c# e( \6 U5 I5 o) Y

6 F; |1 Q1 G  l) |! P一、什么是epoll
" N; O0 W2 V, Z( q0 V
) e5 ^) O' a9 }5 c, v

+ H% ]" t9 F8 E4 l    epoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linuxkernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。
! ?3 _' b2 [( S9 N) i3 G
: N0 F) R3 H/ y( h, m二、epoll的相关系统调用
. C; I: `  Q3 D& e2 ?7 F$ P8 ?. f0 A* ~) V
6 U9 F2 k) E6 K2 R8 W& U
    epoll只有epoll_create,epoll_ctl,epoll_wait 3个系统调用。 * A8 A% M: X  H% |

9 d2 A- i9 x! ~7 n& p+ j

* X7 z  z5 \# V# \1、int epoll_create(int size);
# G& Z! m. t4 h4 J* X3 u& `& `. w6 A! e4 l% C5 ^

$ [/ d, h; j  P    创建一个epoll的句柄。自从linux2.6.8之后,size参数是被忽略的。需要注意的是,当创建好epoll句柄后,它就是会占用一个fd值,在linux下如果查看/proc/进程id/fd/,是能够看到这个fd的,所以在使用完epoll后,必须调用close()关闭,否则可能导致fd被耗尽。
9 E2 N4 t4 K( W/ \6 l4 @
: x9 k6 i* P1 r1 o/ ?% I2. int epoll_ctl(int epfd, int op,int fd, struct epoll_event *event);# r2 v! V0 c1 [/ }6 D& \

7 G2 ?, ^8 ^4 @, }* T& o, C+ D  d. y

! l0 e5 Y" g7 `# {    epoll的事件注册函数,它不同于select()是在监听事件时告诉内核要监听什么类型的事件,而是在这里先注册要监听的事件类型。6 `4 o1 b3 X3 R# T$ V

8 f! l) d+ t1 a: `1 w5 R
  K  a6 _- ^0 b- g: S9 @" s
游客,如果您要查看本帖隐藏内容请回复

% ^% R1 \: \5 |0 q4 A  q) _
2 f8 B5 f' Q- o. ?$ U, b
4 b3 g9 L) O$ f

7 D8 {' l6 D, Q1 V0 w6 x- H3 w  {+ ^

7 y! w6 Z! v$ |/ {; n! e2 r: g: h
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 19:56 , Processed in 0.140625 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表