ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
16 июля
570169 Топик полностью
fk0, легенда (02.01.2015 13:34, просмотров: 95) ответил VVB на Подскажите по CAN
В луниксах есть AIO, но разброд и шатания в реализации. Во-первых aio_xxx функции (man 7 aio) могут оказаться лишь жалкой библиотечной обёрткой вокруг открытия файла в режиме O_ASYNC (man fcntl) и последующего получения SIGIO по завершению каждой операции (через read/write -- возврат сразу). Есть библиотеки вроде libaio, libevent... Нет никаких идеологических проблем: можешь открывать файл с O_NONBLOCK и работать с select(), как и с сетью. Это если не callback, а опрос нужен (что использует тот же libevent). Это у виндоморонов в виндовсе с идеологией проблемы: у них для разных типов файлов разные функции. Для юникс-подобной ОС нужно реализовать неблокирующую работу и работу select(). Остальное -- функцию библиотек и юзерспейса (заводят отдельный тред который опрашивает select и вызывает callbacks).
[ZX]