НАЗВАНИЕ
open - открыть файл для чтения или записи
СИНТАКСИС
#include <fcntl.h>
int open (path, oflag [, mode])
char *path;
int oflag, mode;
ОПИСАНИЕ
Аргумент path является указателем на маршрутное имя
файла. Системный вызов open открывает дескриптор для
указанного файла и устанавливает флаги статуса файла в
соответствии со значением аргумента oflag. Для файлов,
не являющихся псевдоустройствами [см. intro(2)], значение oflag задается как поразрядное ИЛИ флагов из следующего списка (из первых трех флагов можно установить
только один):
O_RDONLY
Открыть только на чтение.
O_WRONLY
Открыть только на запись.
O_RDWR
Открыть на чтение/запись.
O_NDELAY
Этот флаг может воздействовать на последующие операции чтения и записи [см. read(2) и write(2)].
При открытии именованного канала с установленными
флагами O_RDONLY или O_WRONLY:
Если установлен флаг O_NDELAY, то вызов open
только на чтение завершается без задержки, а
вызов open только для записи отрабатывает с сообщением об ошибке, если в данный момент нет
процесса, открывшего файл для чтения;
Если не установлен флаг O_NDELAY, то вызов open
только на чтение блокируется, пока какой-либо
процесс не откроет файл для записи, а вызов
open только на запись блокируется, пока какой
либо процесс не откроет файл на чтение.
При открытии файла, ассоциированного с линией связи:
Если установлен флаг O_NDELAY, то вызов open
завершается без ожидания несущей.
Если не установлен флаг O_NDELAY, то вызов open
блокируется до появления несущей.
O_APPEND
Перед каждой операцией записи устанавливать указатель текущей позиции на конец файла.
O_SYNC
При открытии обычного файла этот флаг воздействует
на последующие операции записи. Если флаг установлен, то каждый вызов write(2) ожидает физического
обновления как данных, так и статуса файла.
O_CREAT
Если файл существует, то флаг игнорируется. В противном случае идентификаторы владельца и группы
создаваемого файла устанавливаются равными, соответственно, действующим идентификаторам пользователя и группы процесса, а младшие 12 бит значения
режима доступа к файлу устанавливаются равными
значению аргумента mode, модифицированному следующим образом [см. creat(2)]:
Биты, соответствующие единичным битам маски режима создания файлов текущего процесса [см.
umask(2)], устанавливаются равными 0.
Если файл существует, то он опустошается (размер
становится равным 0), а режим доступа и владелец
не изменяются.
O_EXCL
Если установлены оба флага O_EXCL и O_CREAT, то
системный вызов open завершается неудачей, если
файл уже существует.
При открытии псевдоустройства значение oflag может задаваться как поразрядное ИЛИ флага O_NDELAY с одним из
флагов O_RDONLY, O_WRONLY или O_RDWR. Другие флаги применительно к псевдоустройствам игнорируются. Флаг
O_NDELAY воздействует на работу драйверов псевдоустройств и некоторые системные вызовы