【发布时间】:2011-03-28 09:24:23
【问题描述】:
我使用 libevent2 有一段时间了,但通常我用它来处理网络 I/O(使用套接字)。现在我需要阅读许多不同的文件,所以我也想使用它。我创建了这段代码:
int file = open(filename, O_RDONLY);
struct event *ev_file_read = event_new(ev_base, file, EV_READ | EV_PERSIST, read_file, NULL);
if(event_add(ev_file_read, NULL))
error("adding file event");
不幸的是,它不起作用。尝试添加事件时收到此消息:
[警告] fd 7 上的 Epoll ADD(1) 失败。旧事件为 0;读取更改为 1(添加);写入更改为 0(无):不允许操作 添加文件事件:不允许操作
文件存在并且有读/写权限。
有人知道如何使用 libevent 处理文件 IO 吗?我也想过缓冲事件,但在 API 中只有函数 bufferevent_socket_new() 在这里不适用。
提前致谢。
【问题讨论】: