iofunc_unlink()

Подтвердить, что запись может быть удалена

Прототип:

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

Аргументы:

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

Библиотека:

libc

Описание:

Функция iofunc_unlink() проверяет, что msg содержит корректные данные для удаления и что клиенту разрешено удалить ресурс в соответствии с комбинацией информации о клиенте info и атрибутов ресурса attr, dattr, attr->uid и attr->gid.

Если удаляется каталог, iofunc_unlink() проверяет, что каталог пуст. Функция iofunc_unlink() также обновляет метки времени и уменьшает счётчик ссылок для записи.

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

EOK
Успешное завершение.
ENOTDIR
Попытка удалить не каталог, используя семантику работы с каталогами (например, "rmdir file").
EINVAL
Попытка удалить текущий каталог ".".
ENOTEMPTY
Попытка удалить непустой каталог.
EROFS
Попытка удалить запись в файловой системе, доступной только для чтения.
EACCES
У клиента нет прав на выполнение операции.
EPERM
GID или UID не совпадают.

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

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

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

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

struct _client_info, io_unlink_t, struct _io_connect, struct _io_connect_link_reply, struct _io_connect_ftype_reply, ConnectClientInfo(), iofunc_attr_t, iofunc_check_access(), resmgr_context_t




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