iofunc_utime_default()

Обработчик по умолчанию для сообщений _IO_UTIME

Прототип:

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

Аргументы:

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

Библиотека:

libc

Описание:

Функция iofunc_utime_default() реализует семантику POSIX для клиентского вызова utime(), принимаемого менеджером ресурсов как сообщение _IO_UTIME.

Эту функцию можно поместить на место utime в таблицу io_funcs, передаваемую в resmgr_attach(). Или вызвать iofunc_func_init() , чтобы инициализировать все функции значениями по умолчанию.

Функция iofunc_utime_default() вызывает iofunc_utime() для выполнения фактической работы. Она проверяет наличие у клиента необходимых разрешений для изменения временных меток устройства, и если они присутствуют, тогда метки обновляются и изменяются элементы структуры ocb->attr. Эта функция обновляет следующие биты элемента flags в структуре ocb->attr:

IOFUNC_ATTR_ATIME
IOFUNC_ATTR_CTIME
IOFUNC_ATTR_MTIME
IOFUNC_ATTR_DIRTY_TIME
IOFUNC_ATTR_DIRTY_MODE

Затем функция iofunc_utime() вызывает iofunc_time_update() для обновления соответствующих полей времени в ocb->attr.

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

EOK
Успешное завершение.
EROFS
Попытка удалить запись в файловой системе, доступной только для чтения.
EACCES
У клиента нет прав на выполнение операции.
EPERM
GID или UID не совпадают.

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

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

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

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

io_utime_t, iofunc_func_init(), iofunc_time_update(), iofunc_ocb_t, iofunc_utime(), resmgr_attach(), resmgr_context_t, resmgr_io_funcs_t, utime()




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