DCMD_ALL_SETFLAGS

Установка флагов открытия файла

Прототип:

#include <sys/dcmd_all.h>
#define DCMD_ALL_SETFLAGS __DIOT( _DCMD_ALL, 2, int )

Аргументы:

filedes
Файловый дескриптор.
dcmd
DCMD_ALL_SETFLAGS.
dev_data_ptr
Указатель на int, где сохранены устанавливаемые флаги.
n_bytes
Размер типа int, полученный с помсощью sizeof().
dev_info_ptr
NULL.

Описание:

Команда используется в сочетании с вызовом devctl(), а все перечисленные аргументы являются его типовыми параметрами. Команда позволяет установить флаги открытия файла, описанные в <fcntl.h>. С её помощью нельзя изменять режим доступа к файлу. Обычно команда используется не напрямую, а через функцию fcntl():

fcntl( fd, F_SETFL, flags );

Исходящие данные:

Побитовое ИЛИ следующих флагов (определённых маской O_SETFLAG):

O_APPEND
O_DSYNC
O_LARGEFILE
O_NONBLOCK
O_RSYNC
O_SYNC

Более детальная информация представлена на странице описания функции open().

Входящие данные:

Отсутствуют.

Коды ошибок:

Функция devctl() может вернуть дополнительный код ошибки, относительно описанных на странице функции:

EINVAL
Указан один из флагов *SYNC, но IOFUNC_PC_SYNC_IO не установлен в mount-конфигурации устройства.

Примеры:

if ( devctl( fd, DCMD_ALL_SETFLAGS, &flags, sizeof( flags ), NULL ) != EOK )
{
/* Error */
}

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

DCMD_ALL_GETFLAGS, devctl(), fcntl(), open()




Предыдущий раздел: перейти