perror – вывод сообщения об ошибке.
Синтаксис:
#include < stdio.h >
void perror (const char *s);
Аргументы:
s - указатель на строку, которая будет выведена перед выводом сообщения об ошибке.
Возвращаемое значение:
Функция ничего не возвращает
Описание:
Функция выводи сообщение об ошибке в поток сообщений об ошибке. В начале выводится строка, на которую указывает аргумент функции, затем выводится двоеточие и пробел, затем выводится сообщение об ошибке, соответствующей значению errno.
Если на момент вызова функции ошибок не зафиксировано или информация о них удалена, то в качестве сообщения об ошибке будет выведено сообщение: Success.
Пример:
В примере создается файл для чтения с именем 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
|