#include <sys/eventfd.h>
int eventfd(unsigned int initval, int flags);
efd = eventfd(0, 0);
if (efd == -1)
handle_error("eventfd");
作用
eventfd 结合epoll
eventfd 是专门用来传递事件的 fd ,而 epoll 池则是专门用来管理事件的池子,它们两结合就妙了
eventfd 可以和 libaio & epoll 一起,实现 Linux 下的纯异步 IO
ext4 这种文件 fd 一直可读可写,所以实现 poll 毫无意义。eventfd 一直可写,所以监听可写毫无意义;
eventfd 可以结合业务,做一个事件通知的通信机制,非常巧妙;
原文:https://www.cnblogs.com/lodger47/p/15073436.html