Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

open

open


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

Синтаксис          #include <fcntl.h>
                   #include <sys\stat.h>
                   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, dup2, fdopen, filelenth, fopen,
                   freopen, gettime, lseek, lock, _open, read,
                   sopen, _write, write.

Пример:

#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>

int main(void)
{
   int handle;
   char msg[] = "Hello world!";
   if((handle = open("TEST.$$$",O_RDWR)) == -1) {
      perror("Error:");
      return 1;
   }
   _write(handle,msg,strlen(msg));
   _close(Handle);
   return 0;
}


Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог