Я некоторое время работал с libevent2, но обычно использовал его для обработки сетевых операций ввода-вывода (с использованием сокетов). Теперь мне нужно прочитать много разных файлов, чтобы я тоже хотел его использовать. Я создал этот код:Проблема с файлом ввода-вывода с libevent2
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");
К сожалению, это не сработало. Я получаю это сообщение при попытке добавить событие:
[предупреждение] Не удалось выполнить попытку сползания Epoll ADD (1) на fd 7. Старые события были 0; прочитанное изменение было 1 (добавить); изменение записи было 0 (нет): Операция не допускается добавления события файла: Операция не допускается
Файл существует и имеет право на чтение/записи.
Кто-нибудь знает, как обращаться с файлом IO с помощью libevent? Я также думал о буферизованных событиях, но в API есть только функция bufferevent_socket_new(), которая здесь не применяется.
Заранее спасибо.
О, боже, я потратил столько времени пытаясь понять это. благодаря – c00kiemon5ter