一个简单的测试实例:
void acall(evutil_socket_t af, short, void *param)
{
std::cout << "calling" << std::endl;
}
sfd = open("a.txt", 'r');
struct event_config *cfg = event_config_new();
event_config_avoid_method(cfg, "epoll");
event_base *bev = event_base_new_with_config(cfg);//event_base_new();
event_config_free(cfg);
event *evn = event_new(bev, sfd, EV_READ| EV_WRITE |EV_PERSIST, acall, 0);
std::cout << "open:" << sfd << std::endl;
int e = event_initialized(evn);
std::cout << "init:" << e << std::endl;
e = event_add(evn, 0);
std::cout << "ADD:" << e << std::endl;
event_set_log_callback(logfn);
char buff[256];
read(sfd, buff, 12);
std::cout << buff << std::endl;
pthread_t pf;
pthread_create(&pf, NULL, rfile, NULL);
e = event_base_dispatch(bev);
pthread_join(pf, NULL);
C++回调函数在文件操作中的应用
本文探讨了如何使用C++回调函数处理文件读写事件,通过配置事件、注册回调函数、初始化事件和添加事件到事件基,实现文件操作的异步处理。详细介绍了事件基的创建、配置、初始化及事件的添加过程,并展示了如何通过回调函数实时响应文件读取事件。
277

被折叠的 条评论
为什么被折叠?



