Лекции по курсу "Системное программирование для UNIX". Литвинов Д.Г. - 12 стр.

UptoLike

Составители: 

12
Флаги состояния файла
Флаги состояния файла используются для указания атрибутов открытия файла.
Флаги состояния файла задаются при открытии файла функцией open.
Режимы открытия файла
Режимы открытия файла дают возможность открыть файл на чтение, на запись
или на чтение и запись одновременно. Флаги открытия файла определены в
заголовочном файле <fcntl.h>.
int O_RDONLY Открывает файл на чтение;
int O_WRONLY Открывает файл на запись;
int O_RDWR Открывает файл на чтение и запись.
В Linux первые два флага могут быть объединены с помощью логического И и
использоваться вместо O_RDWR.
В Linux определены следующие дополнительные флаги, использование
которых предпочтительно.
int O_READ Открывает файл на чтение;
int O_WRITE Открывает файл для записи;
int O_EXEC Открывает файл для исполнения.
Флаги открытия файла
Флаги открытия файла определяют способ, которым функция open будет
выполнять открытие файла.
int O_CREAT Файл будет создан, если он не существует;
int O_EXCL Если установлен вместе с предыдущим флагом, функция
возвращает ошибку, если файл уже существует;
int O_NONBLOCK Не используется блоковая передача данных;
Следующие флаги существуют только в Linux.
int O_IGNORE_CTTY Не воспринимает файл как контрольный терминал;
int O_NOLINK Если файл
я
вляется символьной ссылкой, открывается
именно эта ссылка, а не файл, на который она ссылается;
int O_TRUNC Делает размер файла равным нулю.
Режимы ввода/вывода
Следующие флаги определяют каким образом будут выполняться операции
ввода/вывода над открытым файлом. Эти флаги устанавливаются функцией open и
могут быть модифицированы с помощью fcntl.
int O_APPEND Разрешает режим добавления данных в файл;
int O_NONBLOCK Разрешает неблокируемый режим;
int O_ASYNC Разрешает асинхронный режим ввода/вывода. Если установлен,
генерируется сигнал SIGIO в случае возможности ввода;
int O_FSYNC
int O_SYNC
Разрешает синхронную запись в файл. Каждый вызов write не
возвращает управление в программу до тех пор, пока данные не
будут записаны на диск;
int O_NOATIME Если установлен, функция read не будет обновлять время
последнего доступа к файлу.
Получение и установка флага состояния файла
Для выполнения этих операций используются следующие команды:
int F_GETFL Используется для получения значения флага. При успешном
       Флаги состояния файла
       Флаги состояния файла используются для указания атрибутов открытия файла.
Флаги состояния файла задаются при открытии файла функцией open.

        Режимы открытия файла
        Режимы открытия файла дают возможность открыть файл на чтение, на запись
или на чтение и запись одновременно. Флаги открытия файла определены в
заголовочном файле .
int O_RDONLY       Открывает файл на чтение;
int O_WRONLY       Открывает файл на запись;
int O_RDWR         Открывает файл на чтение и запись.
        В Linux первые два флага могут быть объединены с помощью логического И и
использоваться вместо O_RDWR.
        В Linux определены следующие дополнительные флаги, использование
которых предпочтительно.
int O_READ         Открывает файл на чтение;
int O_WRITE        Открывает файл для записи;
int O_EXEC         Открывает файл для исполнения.

        Флаги открытия файла
        Флаги открытия файла определяют способ, которым функция open будет
выполнять открытие файла.
int O_CREAT            Файл будет создан, если он не существует;
int O_EXCL             Если установлен вместе с предыдущим флагом, функция
                       возвращает ошибку, если файл уже существует;
int O_NONBLOCK         Не используется блоковая передача данных;
Следующие флаги существуют только в Linux.
int O_IGNORE_CTTY      Не воспринимает файл как контрольный терминал;
int O_NOLINK           Если файл является символьной ссылкой, открывается
                       именно эта ссылка, а не файл, на который она ссылается;
int O_TRUNC            Делает размер файла равным нулю.

        Режимы ввода/вывода
        Следующие флаги определяют каким образом будут выполняться операции
ввода/вывода над открытым файлом. Эти флаги устанавливаются функцией open и
могут быть модифицированы с помощью fcntl.
int O_APPEND         Разрешает режим добавления данных в файл;
int O_NONBLOCK       Разрешает неблокируемый режим;
int O_ASYNC          Разрешает асинхронный режим ввода/вывода. Если установлен,
                     генерируется сигнал SIGIO в случае возможности ввода;
int O_FSYNC          Разрешает синхронную запись в файл. Каждый вызов write не
int O_SYNC           возвращает управление в программу до тех пор, пока данные не
                     будут записаны на диск;
int O_NOATIME        Если установлен, функция read не будет обновлять время
                     последнего доступа к файлу.

        Получение и установка флага состояния файла
        Для выполнения этих операций используются следующие команды:
int F_GETFL Используется для получения значения флага. При успешном


       12