|
FCNTL(5)НАЗВАНИЕ СИНТАКСИС #include <fcntl.h> ОПИСАНИЕ Флаги, доступные open(2) и fcntl(2) /* Первые три флага могут быть установлены только при открытии файла */ #define O_RDONLY 0 #define O_WRONLY 1 #define O_RDWR 2 #define O_NDELAY 04 /* Неблокируемый ввод/вывод */ #define O_APPEND 010 /* Добавлять (гарантируется, что запись будет производиться в конец файла) */ #define O_SYNC 020 /* Флаг синхронной записи */ Флаги, доступные только open(2) #define O_CREAT 00400 /* Создать и открыть файл, ис- пользуя третий агрумент open(2), как режим доступа */ #define O_TRUNC 01000 /* Открыть с опустошением */ #define O_EXCL 02000 /* Флаг исключительности */ Запросы к fcntl(2) #define F_DUPFD 0 /* Скопировать дескриптор файла */ #define F_GETFD 1 /* Получить флаги файла с данным дескриптором */ #define F_SETFD 2 /* Установить флаги файла с данным дескриптором */ #define F_GETFL 3 /* Получить флаги файла */ #define F_SETFL 4 /* Установить флаги файла */ #define F_GETLK 5 /* Получить состояние блокировки файла */ #define F_SETLK 6 /* Установить блокировку файла */ #define F_SETLKW 7 /* Установить блокировку файла и ждать */ #define F_CHKFL 8 /* Проверить допустимость измене- ний флагов файла */ #define F_ALLOCSP 10 /* Зарезервирован */ #define F_FREESP 11 /* Зарезервирован */ Структура контроля за блокировкой сегмента файла, информация передается пользователем системе struct flock { short l_type; short l_whence; long l_start; long l_len; /* Если 0, то до конца файла */ short l_sysid; /* Возвращается по запросу F_GETLK */ short l_pid; /* Возвращается по запросу F_GETLK */ };Типы блокировок сегмента файла #define F_RDLCK 01 /* Блокировка на чтение */ #define F_WRLCK 02 /* Блокировка на запись */ #define F_UNLCK 03 /* Блокировка на удаление */ |
|