Главная    Разработка ПО    функции языка Си

Описание функций языка Си

" F "

fabs,fabsf,fabsl 

fclose 

fcloseall 

fdim,fdimf,fdiml 

fdopen 

fegetround 

feof 

ferror 

fesetround 

fgetc 

fgets 

fileno 

finite,finitef,finitel 

fflush 

floor,floorf,floorl 

fma,fmaf,fmal 

fmax,fmaxf,fmaxl 

fmin,fminf,fminl 

fmod,fmodf,fmodl 

fopen 

fpclassify 

fputc 

fputs 

freopen 

frexp,frexpf,frexpl 

fseek 

fseeko 

ftell 

ftello 

All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

ferror – определение наличия ошибок потока данных.

Синтаксис:

#include < stdio.h >
int ferror (FILE *stream);

Аргументы:

stream - указатель на управляющую таблицу открытого потока данных.

Возвращаемое значение:

0 – если при работе с потоком данных ошибок не было.
Отличное от нуля значение если установлен индикатор ошибки для потока данных.

Описание:

Функция опрашивает состояния индикатора ошибок потока данных, на который указывает аргумент stream.

Пример:

В примере создается файл для чтения с именем test.txt, располагающейся в папке myfile (папка создана до запуска программы и располагается в директории, из которой запускается программа). Для вызова ошибки в файл производится запись. Далее с помощью функции ferror фиксируется наличие ошибки и с помощью функции perror в консоль выводится тип возникшей ошибки.


#include < stdio.h >  //Для fopen, fclose, printf, fprintf; ferror, perror

int main (void)
{  
   // Переменная, в которую будет сохранен указатель 
   // на управляющую таблицу открываемого потока данных
   FILE *mf; 

   // Переменная в которую будет занесена информация о наличии ошибок при 
   // работе с потоком данных
   int err; 

   // Открытие файла
   printf (“Открытие файла: ”);
   mf=fopen (“myfile/test.txt”,”r”);

   // Проверка открытия файла
   if (mf == NULL) printf (“ошибка\n”);
   else printf (“выполнено\n”);
 
   //Запись данных в файл
   fprintf (mf,“ Тест записи в файл”);
     
   // Определение наличия ошибок
   err = ferror (mf);

   if (err == 0)
      printf (“При работе с потоком данных ошибок не возникло\n”);
   else
      {
         // Вывод информации о возникшей ошибке
         perror (“Ошибка потока данных”);
      }

   // Закрытие файла
   printf (“Закрытие файла: ”);
   if ( fclose (mf) = EOF) printf (“ошибка\n”);
   else printf (“выполнено\n”);

   return 0;
} 

Результат:

Открытие файла: выполнено
Ошибка потока данных: Bad file descriptor
Закрытие файла: выполнено


Смотри так же:

feof
ferror
clearerr
perror
strerror


Яндекс.Метрика

Рейтинг@Mail.ru