Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform
Шрифт:
Классификация: Функция ввода/вывода
Обработчик по умолчанию: Нет
Вспомогательные функции: iofunc_space_verify
Клиентская функция: chsize, fcntl, ftruncate, ltrunc
Сообщение _IO_SPACE
Структура данных:
Описание:
Возвращает: Число байтов (размер ресурса), посредством вспомогательного макроса _RESMGR_STATUS.
Классификация: Функция ввода/вывода
Обработчик по умолчанию: iofunc_stat_default
Вспомогательные функции: iofunc_stat
Клиентская функция: stat, lstat, fstat
Сообщения: _IO_STAT
Структура данных:
Описание: Обрабатывает сообщение, запрашивающее информацию о ресурсе, связанном с переданным OCB. Заметьте, что атрибутная запись содержит всю информацию, необходимую для выполнения запроса stat. Вспомогательная функция iofunc_stat заполняет структуру
Возвращает: Код завершения, при помощи вспомогательного макроса _RESMGR_STATUS, и структуру
Классификация: Функция ввода/вывода
Обработчик по умолчанию: iofunc_sync_default
Вспомогательные функции: iofunc_sync_verify, iofunc_sync
Клиентская функция: fsync, fdatasync
Сообщения: _IO_SYNC
Структура данных:
Описание: Это точка входа команды flush (синхронизация носителя информации с буферами — например, диска с дисковым кэшем — прим. ред.). Вспомогательная функция iofunc_sync принимает поле flag входного сообщения и возвращает одно из следующих значений, которые указывают, какие действия ваш администратор ресурсов должен выполнить:
• 0 — не делать ничего;
• O_SYNC — все, что связано с файлом (включая содержимое файла, элементы каталогов, индексные дескрипторы (inodes), и т.д.) должно присутствовать на носителе и должно быть восстанавливаемым с него.
• O_DSYNC — присутствовать на носителе и быть восстанавливаемыми с него должны только данные файла.
Отметим, что эта функция будет вызываться только в том случае, если вы согласились поддерживать функцию
Возвращает: Код завершения, при помощи вспомогательного макроса _RESMGR_STATUS.
Данная функция зарезервирована QSSL для будущего использования. Вам следует инициализировать таблицу функций ввода/вывода, используя iofunc_func_init, и не изменять данную точку входа.