概述阅读 nginx 源码接触到了一个新的系统调用 -- eventfdeventfd 系统调用是 linux 2.6 以上版本用来在用户空间创建可以用来作为事件等待、通知的文件描述符简单地说,就是可以在用户态应用中建立一个内核态到用户态的通知机制,这在异步 IO 的使用中非常有用但是该调用必须工作在 64 位环境下 函数原型int eventfd(unsigned int intval, int flag); 定义于 sys/eventfd.h 中调用成功返回文件描述符,调用失败,返回 -1 参数 flag 说明通过按位或运算可以使用以下一个或多个标识:eventfd 系统调用 flag 参数取值取值说明EFD_CLOEXEC类似于 open 系统调用的 O_CLOEXEC 标识,一旦 exec 执行后,关闭所有 fdEFD_NONBLOCK非阻塞调用EFD_SEMAPHORE以信号方式处理文件描述符,linux 2.6.26 以上版本将不支持 用法关于该系统调用的实际用法,可以参看 nginx 中的相应代码 var CODE_DIVS=[{"