Обработать сообщение _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 );
libc
Вспомогательная функция iofunc_chmod() реализует POSIX семантику для клиентского вызова chmod(), принимаемого как _IO_CHMOD
сообщение менеджером ресурсов.
Функция iofunc_chmod() проверяет наличие у клиента необходимых разрешений для модификации структуры атрибутов функцией chmod(). Если разрешений достаточно, то вызывается chmod() и изменяет поля в структуре ocb->attr. Эта функция обновляет IOFUNC_ATTR_CTIME
, IOFUNC_ATTR_DIRTY_TIME
и IOFUNC_ATTR_DIRTY_MODE
биты в ocb->attr->flags. Можно вызвать iofunc_time_update(), чтобы обновить соответствующие поля времени в ocb->attr.
Можно использовать iofunc_chmod(), например, в менеджере файловой системы, и если было принято сообщение _IO_CHMOD
, то файловая система теперь должна записать значения на носитель. Файловая система, возможно, потребует заблокировать поток клиента до тех пор, пока данные не будут фактически записаны на носитель. Можно сравнить этот сценарий с поведением iofunc_chmod_default(), который вызывает этот метод и отвечает клиентскому потоку.
ЗОСРВ «Нейтрино»
chmod(), io_chmod_t, iofunc_attr_t, struct stat, iofunc_chmod_default(), iofunc_ocb_t, iofunc_time_update(), resmgr_context_t
Предыдущий раздел: Описание API системной библиотеки