linux – 使用libevent2处理文件I / O的问题
发布时间:2020-12-14 01:21:48 所属栏目:Linux 来源:网络整理
导读:我和libevent2合作了一段时间,但通常我用它来处理网络I / O(使用套接字).现在我需要阅读许多不同的文件,所以我也想使用它.我创建了这段代码: int file = open(filename,O_RDONLY);struct event *ev_file_read = event_new(ev_base,file,EV_READ | EV_PERSIS
我和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"); 不幸的是它不起作用.我在尝试添加事件时收到此消息:
该文件存在并具有读/写权限. 任何人都知道如何使用libevent处理文件IO?我还想到了缓冲事件,但是在API中只有函数bufferevent_socket_new()在这里不适用. 提前致谢. 解决方法
我需要libevent来阅读有关优先级的许多文件.问题在于epoll不是在解放. Epoll不支持常规Unix文件.
为了解决这个问题,我强迫libevent不要使用epoll: struct event_config *cfg = event_config_new(); event_config_avoid_method(cfg,"epoll"); ev_base = event_base_new_with_config(cfg); event_config_free(cfg); 首选项列表上的下一个方法是poll,它完全支持文件,就像我想要的那样. 谢谢大家的答案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |