FCNTL(5) FCNTL(5) НАЗВАНИЕ fcntl - флаги управления файлами СИНТАКСИС |#include ОПИСАНИЕ Системный вызов fcntl(2) предназначен для управления открытыми файлами. Во включаемом файле описа- ны запросы и аргументы для системных вызовов fcntl(2) и open(2). |/* Флаги, доступные 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 /* Снятие блокировки */ СМ. ТАКЖЕ fcntl(2), open(2).