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

Ваш аккаунт

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

Последние темы форума

Показать новые сообщения »

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

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

open

[ Оглавление ]
               OPEN
            
               #include <fcntl.h>
               #include <sys\types.h>
               #include <sys\stat.h>
               #include <io.h>        требуется только для объявления
                                      функций.
               int open(pathname, oflag [[, pmode]]);
               char *pathname;        path-имя файла
               int oflag;             доступный тип операций
               int pmode;             разрешенный тип доступа.
            
               Описание.
                                                                  
               Функция open открывает файл, определяемый по  path-имени, и
         подготавливает  его к последующему чтению или записи, что опреде-
         ляется посредством oflag.
         
               Аргумент oflag является целым выражением, состоящим из ком-
         бинации одной  или  более  манифестных  констант,  объявленных  в
         <fcntl.h>. Если задана больше  чем одна константа, тогда они объ-
         единяются при помощи логического оператора ИЛИ (:).
            
            OFLAG                          ЗНАЧЕНИЕ
                            
            O_APPEND        Указатель  на файл  перемещен  в конец
                            файла перед каждой операцией записи.
                            
            O_CREAT         Новый файл создан и открыт для записи;
                            это  не  эффективно,  если  существует
                            файл, определяемый по path-имени.
                            
            O_EXCL          Возвращается  значение   ошибки,  если
                            существует файл, определяемый по path-
                            имени.  Применяется  только  вместе  с
                            O_CREATE.

            O_RDONLY        Файл  открыт  только  для чтения; если
                            задается этот флаг, может быть  выбран
                            либо флаг O_RDWR, либо O_WRONLY.
                            
            O_RDWR          Файл   открыт  одновременно для чтения
                            и записи;  если  задается  этот  флаг,
                            может быть выбран  либо флаг O_RDONLY,
                            либо O_WRONLY.
                            
            O_TRUNC         Существующий файл  открыт и  усечен  к
                            длине  0;   этот  файл  должен   иметь
                            разрешение на запись. Содержимое файла
                            уничтожается.
                            
            O_WRONLY        Файл  открыт  только  для чтения; если
                            задан этот  флаг,  должен  быть  задан
                            также либо флаг O_RDONLY, либо ORDWR.
                            
            O_BINARY        Файл  открыт  в  двоичном (не трансли-
                            рованном) режиме.  (См. описание  дво-
                            ичного режима у функции fopen).
                            
            O_TEXT          Файл  открыт  в  текстовом   (трансли-
                            рующем) режиме. (См. описание  тексто-
                            вого режима у функции fopen).
                            
               Замечание!  O_TRUNC полностью уничтожает содержимое сущест-
         вующего файла; поэтому нужно внимательно использовать  эту  конс-
         танту.
               Аргумент  pmode  требуется  только  тогда, когда определена
         константа O_CREAT. Если файл существует,  pmode  игнорируется.  В
         противном  случае   pmode определяет разрешенные типы доступа для
         файла, которые устанавливаются во время первого  закрытия  нового
         файла.
               Pmode  - целое выражение, содержащее одну или обе манифест-
         ные константы S_IREAD, S_IWRITE, объявленные в <sys\stat.h>. Когда
         
         заданы  обе константы, они объединяются логическим оператором ИЛИ
         (:). Значение аргумента pmode приводится ниже.
            
            КОНСТАНТА            ЕЕ СМЫСЛОВОЕ ЗНАЧЕНИЕ
            
            S_IWRITE             разрешает запись.
            
            S_IREAD              разрешает чтение.

            S_IREAD|S_IWRITE     разрешают чтение и запись.

               Если запись не разрешена, файл предназначен только для чте-
         ния. В MS DOS все файлы открыты для чтения; для них  не  возможно
         задать  разрешение  только  на запись. Поэтому, модели S_IWRITE и
         S_IREAD: S_IWRITE являются эквивалентными.
               Функция open перед установкой разрешенного доступа  прикла-
         дывает текущую маску файла к pmode. (Подробно об этом описывается
         у функции umask).
            
               Возвращаемое значение.
            
               Эта функция возвращает handle на созданный файл. Возвращае-
         мое значение -1 указывает на ошибку; errno устанавливается в одно
         из следующих значений.
            
            ЗНАЧЕНИЕ                ЕГО СМЫСЛ
      
            EACCES         Заданное path-имя является директорием;
                           или сделана попытка  записать  в  файл,
                           открытый   только   для   чтения,   или
                           возникло  sharing-нарушение.  (Sharing-
                           режим файла для операций не допускается.
                           Версии MS DOS 3.0 и старше).
            
            EEXIST         Флаги O_CREAT и O_EXCL  определены,  но
                           названный файл всегда существует.
                           
            EMFILE         Другие handle-ры файла не доступны, т.к.
                           много открытых файлов.
                          
            ENOENT         Файл или path-имя не найдено.
      
               См.  также  access,  chmod, close, creat, dup, dup2, fopen,
         sopen, umask.
            
            Пример:
            
            #include <fcntl.h>
            #include <sys\types.h>
            #include <sys\stat.h>
            #include <io.h>
            #include <stdlib.h>
            main ()
             {
              int fh1, fh2;
         
              fh1 = open("data1", O_RDONLY);
              if (fh1 == -1)
                  perror("open failed on input file");
              fh2 = open("data2", O_WRONLY:O_TRUNC:O_CREAT,
                                  S_IREAD:S_IWRITE);
              if (fh2 == -1)
                  perror("open failed on output file");
              .
              .
              .
             }.
              fh1 = open("data1", O_RDONLY);
              if (fh1 == -1)
                  perror("open failed on input file");.
      
      
            

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

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