iofunc_write_verify()

Подтвердить наличие у клиента прав записи в ресурс

Прототип:

#include <sys/iofunc.h>
int iofunc_write_verify( resmgr_context_t *ctp,
io_write_t *msg,
iofunc_ocb_t *ocb,
int *nonblock );

Аргументы:

ctp
Указатель на структуру resmgr_context_t, которую библиотека менеджера ресурсов использует для передачи контекстной информации между функциями.
msg
Указатель на структуру io_write_t, содержащую сообщение, полученное менеджером ресурсов.
ocb
Указатель на структуру блока управления открытым контекстом (OCB, Open Control Block) iofunc_ocb_t, созданную при открытии ресурса клиентом.
nonblock
NULL или указатель на место, где функция может хранить значение, указывающее, является ли устройство неблокирующим:

Библиотека:

libc

Описание:

Функция iofunc_write_verify() проверяет, имеет ли клиент, отправивший сообщение о записи, доступ на запись в ресурс, и, опционально (если nonblock не NULL), устанавливает nonblock в O_NONBLOCK или 0.

Проверка разрешения на запись выполняется с помощью ocb->ioflag.

Обратите внимание, что сообщение io_write_t содержит флаг переопределения msg->i.xtype. Этот флаг позволяет клиенту переопределять поведение по умолчанию для блокировки ресурса на основе каждого запроса. Этот флаг проверяется и возвращается в необязательном nonblock.

В обработчике write менеджера ресурсов необходимо указать, сколько байт было записано. Можно сделать это с помощью макроса:

_IO_SET_WRITE_NBYTES( resmgr_context_t *ctp, int nbytes )

Возвращаемое значение:

EOK
У клиента есть доступ на запись в данный ресурс.
EBADF
У клиента нет доступа для записи в данный ресурс.

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

io_write_t, iofunc_read_verify(), resmgr_context_t




Предыдущий раздел: Описание API системной библиотеки