Использование libevent (или любого из базовых механизмов уведомления о готовности, таких как, например, epoll
или kqueue
) с обычными файловыми дескрипторами обычно не имеет смысла.Исключением являются файлы в NFS или использующие ядро AIO с eventfd
.
Файловые дескрипторы на локальных дисках всегда готовы, буферного пространства всегда достаточно, и операции всегда завершаются «немедленно».Операция записи просто копирует данные в буферный кеш, и фактическая запись на диск происходит ... всякий раз, когда это происходит .(обратите внимание, что эта ссылка специфична для Linux, но, возможно, кроме некоторых мелких деталей реализации, она работает так же в других системах)