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

Ваш аккаунт

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

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

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

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

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

fopen

[ Оглавление ]
               FOPEN
            
            
               #include <stdio.h>
               FILE *fopen(pathname, type);
               char *pathname;              path-имя файла.
               char *type;                  разрешенный тип доступа.
            
               Описание.
            
               Функция fopen  открывает  файл,  определяемый  path-именем.
         Символы  в строке type определяют тип доступа, требуемый для фай-
         ла, следующим образом.
                
            РЕЖИМ                   ОПИСАНИЕ
                                                            
            "r"          открыть файл для чтения.(Этот файл должен
                         существовать).
                                                            
            "w"          открыть пустой файл для записи; если этот
                         файл  ранее  существовал,  его содержимое
         
                         уничтожается.
                         
            "a"          открыть файл для  записи  (добавления)  в
                         конец. Если данного файла нет, то вначале
                         он создается.
                         
            "r+"         открыть файл одновременно  для  чтения  и
                         записи. Файл должен существовать.
                         
            "w+"         открыть  пустой файл для чтения и записи.
                         Если этот  файл  ранее  существовал,  его
                         сожержимое уничтожается.
                         
            "a+"         открыть  файл  для  чтения и  добавления.
                         Если файла нет, вначале он создается.
            
               Замечание! Нужно внимательно применять  режимы  "w",  "w+",
         так как они могут уничтожить существующие файлы.
                 
               Если файл открыт при помощи типа "a" или "a+", все операции
         записи выполняются в конец файла. При использовании функций fseek
         или rewind  возможно перепозиционирование указателя на файл; нес-
         мотря  на это, указатель на файл перед выполнением любых операций
         записи всегда возвращается в конец файла. Таким образом,  сущест-
         вующие  данные  не  будут  перезаписаны.  При использовании типов
         "r+', "w+", "a+" допускается одновременно чтение и запись. (Гово-
         рится, что файл открывается для обновления). Поэтому, при  перек-
         лючении  чтения  на запись и наоборот  нужно использовать функции
         fseek или rewind. Для функции  fseek  (при  необходимости)  может
         быть точно определена текущая позиция.
               Дополнительно  к  значениям, описанным выше, может быть до-
         бавлен в строке type один из следующих символов, чтобы специфици-
         ровать способ преобразования символа новой строки.
      
      
            Символ               Значение
            
              t          открыть   в   текстовом   (преобразующем)
                         режиме;  при  вводе  комбинация  "Возврат
                         каретки      -      перевод       строки"
                         преобразовывается к единственному символу
                         "перевода  строки".  При  выводе   символ
                         перевода   строки   преобразовывается   в
                         комбинацию ВК-ПС.
                         
              b          открыть   в   двоичном  (непреобразующем)
                         режиме; выше описанные преобразования  не
                         осуществляются.
                         
                         
               Если t или b в строке type не задается, режим  преобразова-
         ния  определяется переменной _fmode и режимом, устанавливаемым по
         умолчанию.
            
      
         
               Возвращаемое значение.
            
               Функция fopen возвращает указатель на открытый файл. Значе-
         ние указателя NULL свидетельствует об ошибке.
               См.также  fclose,  fcloseall,   fdopen,   ferror,   fileno,
         freopen, open, setmode.
            
               Пример:
            
               #include <stdio.h>
               main (argc, argv)
               int argc;
               char *argv[];
               {
               FILE *stream;
               /*  применение  fopen  позволяет открыть файл, имя которого
         хранится в указателе argv[argc-1]; если это не удается, программа
         распечатывает сообщение об ошибке */
               if ((stream= fopen(argv[argc-1]), "r"))==NULL)
                  { fprintf (stderr, "%s не может открыть файл %s\n",
                             argv[0], argv[argc-1]);
                   exit(1);
               }
               /* Замечание! Имя программы хранится в argv[0]  только  для
         версий  MS  DOS  3.0  и последующих; в предыдущих версиях MS DOS,
         argv[0] содержится в строке "Си" */
               Образец командной строки:
            
               update employ.dat
            
               На выходе будет сообщение:
            
               "C:\BIN\UPDATE.EXE не может открыть файл employ.dat ".
                                     
            
               FP_OFF - FR_SEG
            
               #include <dos.h>
               unsigned FP_OFF(longptr);
               unsigned FP_SEG(lohgptr);
               char far *longptr;          long-указатель на адрес памяти.
            
               Описание.
            
               Макро FP_OFF и FP_SEG могут  использоваться  соответственно
         для   установки  разветвления  или  взятия  сегмента  посредством
         long-указателя longptr.
            
               Возвращаемое значение.
            
               Макро FP_OFF возвращает беззнаковое целое значение,  предс-
         тавляющее разветвление.
               Макро  FP_SEG возвращает беззнаковое целое значение, предс-
         таляющее адрес сегмента.
               См.также segread.
         
            
               Пример.
            
               #include <dos.h>
            
               char far *p;
               unsigned int seg_val;
               unsigned int off_val;
               .
               .
               .
               seg_val=FP_SEG(p);
               off_val=FP_OFF(p);
                

                                     
               _FPRESET
            
               #include <float.h>
               void _fpreset();             переинициализирует математиче-
                                            ский пакет с плавающей точкой.
            
               Описание:
            
               Функция  _fpreset переинициализирует математический пакет с
         плавающей точкой. Эта функция обычно используется  с  процедурами
         signal, system или с семейством процедур exec, spawn.
               Если программа вместе с функцией signal захватывает сигналы
         ошибок  с  плавающей  точкой (SIGFPE), то она при вызове _fpreset
         благополучно восстанавливается из ошибок с плавающей точкой и вы-
         полняет longjmp.
               
               Замечание!  В  версиях  MS  DOS,  более  ранних  чем   4.0,
         child-процесс, выполнимый в exec, spawn или system, может воздей-
         ствовать  на  состояние  с плавающей точкой parent-процесса, если
         используется 8087 или 80287 сопроцессор. Поэтому, если  использу-
         ется сопроцессор 8087 либо 80287, рекомендуются помнить, что:
               * exec, spawn, system не могут вызываться в процессе вычис-
         ления выражения с плавающей точкой;
               *  _fpreset  должна  быть вызвана после этих процедур, если
         child-процесс может выполнить требуемую операцию.
            
               Возвращаемое значение:
            
               Возвращаемого значения нет.
               См.также execl, execle,  execlp,  execlpe,  execv,  execve,
         execvp,  execvpe,  signal,  spawnl,  spawnle,  spawnlp, spawnlpe,
         spawnv, spawnve, spawnvp, spawnvpe.
            
               Пример.
            
               #include <stdio.h>
               #include <signal.h>
               #include <setjmp.h>
               #include <float.h>
         
            
               int fphandler ();
               jmp_buf mark;
               double a = 1.0, b = 0.0, c;
            
               main()
               {
               if(signal(SIGFPE, fphandler)==(int(*)())-1)
                   abort();
               if(setjmp(mark)==0)  {
                   c = a/b;
                   printf("Should never get here\n");
                   }
               printf("Recovered from floating-point error\n");
               }
            
               int fphandler(sig,num)
               int sig,num;
            
               {
               printf("signal=%d subcode =%d\n",sig,num);
               _fpreset();
               /* переинициализирует пакет с плавающей точкой */
               longjmp(mark,-1);
               }

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

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