iofunc_mknod()

Подтвердить способность клиента создать новую точку входа в файловую систему

Прототип:

#include <sys/iofunc.h>
int iofunc_mknod( resmgr_context_t *ctp,
io_mknod_t *msg,
iofunc_attr_t *attr,
iofunc_attr_t *dattr,
struct _client_info *info );

Аргументы:

ctp
Указатель на структуру resmgr_context_t, которую библиотека менеджера ресурсов использует для передачи контекстной информации между функциями.
msg
Указатель на структуру io_mknod_t, содержащую сообщение, полученное менеджером ресурсов.
attr
NULL или указатель на структуру iofunc_attr_t, описывающую характеристики ресурса.
dattr
Указатель на структуру iofunc_attr_t, который необходимо установить. Структура iofunc_attr_t описывает атрибуты родительского каталога.
info
NULL или указатель на структуру struct _client_info с информацией о клиенте.

Библиотека:

libc

Описание:

Вспомогательная функция iofunc_mknod() поддерживает запросы mknod(), проверяя, может ли клиент создать новую точку входа в файловую систему. Похожа на iofunc_open().

Функция iofunc_mknod() проверяет, имеет ли клиент (описываемый необязательной структурой info) доступ для открытия ресурса (имя передаётся в структуре msg). Структура attr описывает атрибуты ресурса, а необязательная структура dattr определяет атрибуты родительского каталога (т.е. если dattr не равно NULL, это означает, что ресурс, описанный в attr, создаётся в каталоге, указанном в dattr).

Аргумент info может быть передан как NULL, в этом случае iofunc_mknod() сама получает информацию о клиенте через вызов iofunc_client_info(). Но, конечно, эффективнее будет получить информацию о клиенте один раз, чем каждый раз вызывать эту функцию с NULL.

При возникновении ошибки функция возвращает информацию о клиентском соединении в info и код ошибки.

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

EOK
Успешное завершение.
EBADFSYS
В dattr был передан NULL.
EFAULT
Ошибка при попытке ядра обратиться к буферу info.
EINVAL
Процесс клиента больше не действителен.
ENOSYS
В info был передан NULL.
EPERM
GID или UID не совпадают.

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

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

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

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

struct _client_info, io_mknod_t, struct _io_connect, struct _io_connect_link_reply, struct _io_connect_ftype_reply, iofunc_client_info(), iofunc_open(), mknod(), resmgr_context_t




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