Подтвердить наличие у клиента прав записи в ресурс
#include <sys/iofunc.h>int iofunc_write_verify( resmgr_context_t *ctp,io_write_t *msg,iofunc_ocb_t *ocb,int *nonblock );
NULL
или указатель на место, где функция может хранить значение, указывающее, является ли устройство неблокирующим: ≠0
— клиент не хочет быть заблокированным (т.е. установлен O_NONBLOCK
). 0
— клиент хочет быть заблокированным. 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 )
ЗОСРВ «Нейтрино»
io_write_t, iofunc_read_verify(), resmgr_context_t
Предыдущий раздел: Описание API системной библиотеки