Man pages на русском



              

OPEN(2) - часть 2


  • Биты, соответствующие единичным битам маски режима создания файлов текущего процесса [см. ], устанавливаются равными 0.
  • Бит навязчивости [см. ] устанавливается равным 0.
  • O_TRUNC Если файл существует, то он опустошается (размер становится равным 0), а режим доступа и владелец не изменяются. O_EXCL Если установлены оба флага O_EXCL и O_CREAT, то системный вызов open завершается неудачей, если файл уже существует.

    При открытии псевдоустройства значение oflag может задаваться как поразрядное ИЛИ флага O_NDELAY с одним из флагов O_RDONLY, O_WRONLY или O_RDWR. Другие флаги применительно к псевдоустройствам игнорируются. Флаг O_NDELAY воздействует на работу драйверов псевдоустройств и некоторые системные вызовы[см. , , , ]. Что касается драйверов, то реализация флага O_NDELAY зависит от устройства.

    Некоторые флаги могут быть установлены и после открытия файла, посредством системного вызова [см. также ].

    Указатель текущей позиции устанавливается на начало файла.

    Новый дескриптор файла остается открытым после выполнения системных вызовов [см. ].

    Системный вызов open завершается неудачей и дескриптор указанного файла не открывается, если выполнено хотя бы одно из следующих условий:

    [EACCES] Нет права на поиск для компонента маршрута. [EACCES] Для указанного файла нет прав на выполнение операций, задаваемых значением oflag. [EAGAIN] Файл существует и доступ к нему заблокирован [см. ]. [EEXIST] Флаги O_CREAT и O_EXCL установлены и указанный файл существует. [EFAULT] Аргумент path указывает за пределы отведенного процессу адресного пространства. [EINTR] Во время выполнения системного вызова перехвачен сигнал. [EIO] Разрыв связи или ошибка при открытии псевдоустройства. [EISDIR] Указанный файл является каталогом и открывается на запись или чтение/запись. [EMFILE] Превышается максимально допустимое количество дескрипторов файлов, открытых одновременно в одном процессе. [EMULTIHOP] Компоненты path требуют многократного обращения к удаленным компьютерам. [ENFILE] Переполнение системной таблицы файлов. [ENOENT] Флаг O_CREAT не установлен и указанный файл не существует. [ENOLINK] Маршрутное имя path указывает на удаленный компьютер, связи с которым в данный момент нет. [ENOMEM] Система не в состоянии выделить память под дескриптор пересылки. [ENOSPC] Установлены флаги O_CREAT и O_EXCL и нет свободных описателей файлов. [ENOSR] Нет места для потока. [ENOTDIR] Компонент маршрута не является каталогом. [ENXIO] Указанный файл является специальным символьным или блочным файлом, а устройство, ассоциированное с этим специальным файлом, не существует. [ENXIO] Установлены флаги O_NDELAY и O_WRONLY, указанный файл является именованным каналом и нет процесса, открывшего файл для чтения. [ENXIO] Неудачная попытка выполнить процедуру открытия для модуля или драйвера псевдоустройства. [EROFS] Указанный файл расположен в файловой системе, доступной только на чтение, а открывается на запись или чтение/запись. [ETXTBSY] Файл содержит секцию команд, которая в данный момент выполняется.

    СМ. ТАКЖЕ

    , , , , , , , , , , , , .

    ДИАГНОСТИКА

    При успешном завершении результатом служит дескриптор файла; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки




    Содержание  Назад  Вперед