Шрифт:
Описание: Это реальный обработчик клиентских вызовов close и fclose. Отметим, что вам почти никогда не придется переназначать эту функцию; оставляйте в таблице функций ввода/вывода значение iofunc_close_dup_default. Причиной этому служит то, что базовый уровень библиотеки отслеживает число сообщений open, dup и close, выданных по каждому OCB, и синтезирует вызов io_close_ocb (см. ниже) после получения для данного OCB последнего сообщения close. Отметим, что идентификаторы отправителей, расположенные в
Возвращает: Код завершения, при помощи вспомогательного макроса _RESMGR_STATUS.
Классификация: Функция ввода/вывода (синтезируется библиотекой)
Обработчик по умолчанию: iofunc_close_default
Вспомогательные функции: Нет
Клиентская функция: Нет (синтезируется библиотекой)
Сообщения: Нет (синтезируется библиотекой)
Структура данных:
Описание: Это функция, которая синтезируется базовым уровнем библиотеки, когда для некоего OCB получено последнее сообщение close. Это то самое место, где вам следует «подчистить» все перед уничтожением OCB. Отметим, что идентификатор отправителя в
Возвращает: Код завершения, при помощи вспомогательного макроса _RESMGR_STATUS.
Классификация: Функция ввода/вывода
Обработчик по умолчанию: iofunc_devctl_default
Вспомогательные функции: iofunc_devctl
Клиентская функция: devctl, ioctl
Сообщения: _IO_DEVCTL
Структура данных:
Описание: Выполняет над устройством операцию ввода/вывода, переданную от клиентской функции devctl в параметре dcmd. Клиент кодирует направление передачи данных двумя старшими разрядами dcmd, указывая этим, как функция devctl должна передавать данные (поле «to» соответствует биту _POSIX_DEVDIR_TO, поле «from» — биту _POSIX_DEVDIR_FROM):