open

Функция            открывает файл для чтения или записи.

Синтаксис          #include 
                   #include 
                   int open(const char *filename, int access
                                  [, unsigned mode]);
Файл, содержащий   io.h
прототип

Описание           Функция open открывает файл, имя которого опреде-
                   лено параметром filename, и подготавливает его к
                   последующим операциям чтения и/или записи, в за-
                   висимости от параметра access.

                   Для создания файла в обычном режиме, вы можете
                   присвоить соответствующее значение _fmode, или
                   при открытии файла указать опции O_CREAT и
                   O_TRUNC связанные операцией побитового логическо-
                   го сложения (OR) с необходимым режимом передачи.
                   К примеру:

                      open("xmp",O_CREAT|O_TRUNC|O_BINARY,S_IREAD);

                   создает двоичный файл с атрибутом только для чте-
                   ния с именем XMP, причем, если он уже существует,
                   то он обрезается до нулевой длины.

                   Для функции open параметр access конструируется
                   путем логического побитового сложения флагов, пе-
                   речисленных в двух следующих списках. Из первого
                   списка может быть использован только один флаг;
                   остальные флаги могут применяться в любых логи-
                   ческих комбинациях.

                   Список 1: флаги чтения/записи.

                   O_RDONLY   открытие только для чтения.
                   O_WRONLY   открытие только для записи.
                   O_RDWR     открытие для чтения и записи.


                   Список 2: остальные флаги доступа.

                   O_NDELAY   Не используется; для совместимости с
                              системой UNIX.
                   O_APPEND   Если флажок установлен, то перед каждой
                              операцией записи, указатель файла бу-
                              дет устанавливаться на конец файла.
                   O_CREAT    Если файл существует, этот флажок не
                              имеет никакого значения. Если файл не
                              существует, он будет создан, и биты из
                              аргумента mode будут использованы
                              для установки битов-атрибутов файла,
                              как и в функции chmod.
                   O_TRUNC    Если файл существует, его длина усека-
                              ется до 0. Атрибуты файла остаются не-
                              изменными.
                   O_EXCL     Используется только вместе с O_CREAT.
                              Если файл уже существует, то происходит
                              возврат по ошибке.
                   O_BINARY   Данный флаг может быть установлен для
                              гарантированного открытия файла в
                              двоичном режиме.
                   O_TEXT     Данный флаг может быть установлен для
                              гарантированного открытия файла в текс-
                              товом режиме.

                   Эти константы (O_...) определены в файле fcntl.h.

                   Если ни O_BINARY, ни O_TEXT не указаны, файл отк-
                   рывается в режиме трансляции, соответственно гло-
                   бальной переменной _fmode.

                   Если в построении параметра access участвует флаг
                   O_CREAT, вам необходимо указать аргумент mode из
                   следующих символических констант, определенных в
                   файле sys\stat.h.

                   --------------------------------------------------
                   Значение параметра    Возможности доступа
                   mode
                   --------------------------------------------------
                   S_IWRITE              Разрешение на запись.
                   S_IREAD               Разрешение на чтение.
                   S_IREAD/S_IWRITE      Разрешение на чтение/запись.
                   --------------------------------------------------

Возвращаемое       При успешном завершении open возвращает целое
значение           неотрицательное число handle - логический номер
                   открытого файла. Указатель файла (указатель теку-
                   щей позиции) устанавливается на начало файла. При
                   ошибке функция возвращает значение -1, и перемен-
                   ная errno получает одно из следующих значений:

                   ENOENT - Маршрут или имя файла не найдены;
                   EMFILE - Слишком много открытых файлов;
                   EACCES - Доступ запрещен;
                   EINVACC - Неверный код доступа.

Переносимость      Функция open поддерживается на системах UNIX.
                   На версии 7 системы UNIX мнемоника O_тип не опре-
                   делена. Система UNIX SYSTEM 3 пользуется всеми
                   мнемониками O_тип за исключением O_BINARY.

Смотрите также      chmod chsize close _creat creat creatnew
                    creattemp dup dup, fdopen filelenth fopen
                    freopen gettime lseek lock _open read
                    sopen _write write