Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform
Шрифт:
Классификация: Функция ввода/вывода
Обработчик по умолчанию: iofunc_openfd_default
Вспомогательные функции: iofunc_openfd
Клиентская
Сообщения: _IO_OPENFD
Структура данных:
Описание: Данная функция аналогична предоставляемому обработчику io_open — за исключением того, что вместо имени пути передается дескриптор уже открытого файла (в силу передачи вам параметра ocb в вызове функции).
Возвращает: Код завершения, при помощи вспомогательного макроса _RESMGR_STATUS.
Классификация: Функция ввода/вывода
Обработчик по умолчанию: iofunc_pathconf_default
Вспомогательные функции: iofunc_pathconf
Клиентская функция: fpathconf, pathconf
Сообщения: IO_PATHCONF
Структура данных:
Описание:
Возвращает: Код завершения, при помощи вспомогательного макроса _IO_SET_PATHCONF_VALUE; флаги возвращаются в ответном сообщении.
Классификация: Функция ввода/вывода
Обработчик по умолчанию: iofunc_read_default
Вспомогательные функции: iofunc_read, iofunc_read_verify
Клиентская функция: read, readdir
Сообщение: IO_READ
Структура данных:
Описание: Отвечает за чтение данных из ресурса. Клиент задает число байт, которое он готов прочитать, в элементе nbytes. Вы возвращаете данные, увеличиваете смещение в OCB и обновляете соответствующие поля с информацией о временах доступа.
Отметим, что элемент xtype может устанавливать для отдельных сообщений флаг переопределения, поэтому его надо проверять. Если вы не поддерживаете никаких расширенных флагов переопределения, вы должны возвратить EINVAL. Далее, в примерах функций io_read и io_write, мы рассмотрим обработку одного очень важного (и очень непростого!) флага переопределения, называемого _IO_XTYPE_OFFSET.
Отметим также, что сообщение _IO_READ приходит не только для обычных файлов, но также и для чтения содержимого каталогов. В варианте с каталогом вы должны гарантированно обеспечить возврат целого (integral) числа элементов