Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform
Шрифт:
Вторая половина полей непосредственно относится к вашей реализации функции установления соединения:
path_len и path
Имя пути (и его длина), которые являются операндом (то есть это имя пути, над которым производится действие).
extra_type и extra_len
Дополнительные параметры (имена путей, например), соответствующее данной функции установления соединения.
Чтобы получить представление о том, как поле path
(В принятой реализации новое имя пути располагается в памяти непосредственно следом за изначальным (на которое указывает path) с учетом выравнивания, но вам делать на этот счет ничего не надо — параметр extra уже содержит правильный указатель.)
Алфавитный список функций установления соединения и ввода/вывода
В данном разделе в алфавитном порядке приведен список точек входа в функции установления соединения и ввода/вывода, которые вы можете заполнять самостоятельно (эти две таблицы затем передаются функции pathname_attach). Помните, что если вы просто вызываете функцию iofunc_func_init, все эти точки входа будут заполнены соответствующими значениями по умолчанию; вам следует переопределять конкретные точки входа только в том случае, если вы собираетесь обрабатывать данное конкретное сообщение самостоятельно. Ниже, в разделе «Примеры», вы увидите несколько примеров общеупотребительных функций.
Чтобы не путать точки входа в функции-обработчики сообщений с вызовами клиентской Си-библиотеки (например, open), к именам всех приведенных здесь функций добавлен префикс «io_». Например, обработчик функции установления соединения open будет называться io_open.
Классификация:
Обработчик по умолчанию: iofunc_chmod_default
Вспомогательные функции: iofunc_chmod
Клиентская функция: chmod, fchmod
Сообщения: _IO_CHMOD
Структура данных:
Описание: Отвечает за изменение режима доступа к ресурсу, указанному в переданном ей параметре ocb, в значение, содержащееся в поле сообщения mode.
Возвращает: Код завершения, при помощи вспомогательного макроса _RESMGR_STATUS.
Классификация: Функция ввода/вывода
Обработчик по умолчанию: iofunc_chown_default
Вспомогательные функции: iofunc_chown
Клиентская функция: chown, fchown
Сообщения: _IO_CHOWN
Структура данных:
Описание: Ответственна за изменение полей идентификатора пользователя и группы для ресурса, указанному в переданном ей параметре ocb, соответственно в значения uid и gid. Отметим, что чтобы узнать, позволяет ли данная файловая система выполнять chown кому-либо, кроме суперпользователя (root), надо проверить запись точки монтирования на предмет флага IOFUNC_PC_CHOWN_RESTRICTED, а также поле flags в OCB.