iofunc_chmod()

Обработать сообщение _IO_CHMOD

Прототип:

#include <sys/iofunc.h>
int iofunc_chmod ( resmgr_context_t *ctp,
io_chmod_t *msg,
iofunc_ocb_t *ocb,
iofunc_attr_t *attr );

Аргументы:

ctp
A pointer to a resmgr_context_t structure that the resource-manager library uses to pass context information between functions.
msg
A pointer to the io_chmod_t structure that contains the message that the resource manager received.
ocb
A pointer to the iofunc_ocb_t structure for the Open Control Block that was created when the client opened the resource.
attr
A pointer to the iofunc_attr_t structure that describes the characteristics of the device that's associated with your resource manager.

Библиотека:

libc

Описание:

The iofunc_chmod() helper function implements POSIX semantics for the client's chmod() call, which is received as an _IO_CHMOD message by the resource manager.

The iofunc_chmod() function verifies that the client has the necessary permissions to effect a chmod() on the attribute. If so, the chmod() is performed, modifying elements of the ocb->attr structure. This function takes care of updating the IOFUNC_ATTR_CTIME, IOFUNC_ATTR_DIRTY_TIME, and IOFUNC_ATTR_DIRTY_MODE bits in ocb->attr->flags. You can use iofunc_time_update(), to update the appropriate time fields in ocb->attr.

You can use iofunc_chmod(), for example, in a filesystem manager, where an _IO_CHMOD message was received, and the filesystem code must now write the values to the medium. The filesystem code may wish to block the client thread until the data was actually written to the medium. Contrast this scenario to the behavior of iofunc_chmod_default(), which calls this routine, and replies to the client thread.

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

EOK
Успешное завершение.
EROFS
An attempt was made to chmod on a read-only filesystem.
EACCES
The client doesn't have permissions to do the operation.
EPERM
The group ID or owner ID didn't match.

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

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

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

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

chmod(), io_chmod_t, iofunc_attr_t, struct stat, iofunc_chmod_default(), iofunc_ocb_t, iofunc_time_update(), resmgr_context_t




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