Прототип функции perror:
void perror( const char * string );
Заголовочный файл
| Название | Язык |
|---|---|
| stdio.h | С |
| cstdio | С++ |
Описание
Функция perror интерпретирует значение глобальной переменной ERRNO в строку и выводит эту строку на стандартный поток вывода (стандартный поток вывода ошибок, обычно — экран) с сообщением, указанным в параметре string.
Макрос ERRNO является глобальной переменной, которая содержит значение об ошибке (последней ошибке), полученной при вызове библиотечных функций. Значение ошибки переводится в строковое сообщение функцией perror, содержание сообщения зависит от платформы и компилятора.
Если параметр string не является нулевым указателем, то перед выводом ошибки, сначала печатается сообщение содержащееся в string, после — двоеточие (:) и символ пробела. Когда string — нулевой указатель, тогда, генерируется сообщение об ошибке и выводится на экран. В конце сообщения следует символ новой строки '\n'.
Функция perror должна быть вызвана сразу после того, как возникла ошибка, в противном случае, ошибка может быть перезаписана при вызове других функций.
Параметры:
- string
Строка содержащая дополнительное сообщение, которое выводится перед сообщением об ошибке. Если параметр — нулевой указатель, то никакого дополнительного сообщения не печатается, но сообщение об ошибке печатается. Чаще всего в качестве этого параметра используется имя приложения.
Возвращаемое значение
нет
Пример: исходный код программы
//пример использования perror
#include <cstdio>
int main()
{
FILE * ptrFile = fopen("nonexist.ent", "rb");
if (ptrFile == NULL)
perror("Произошла ошибка: ");
else
fclose (ptrFile);
return 0;
}
Пример работы программы
Если файл nonexist.ent не существует, то выводится соответствующее сообщение, похожее на это:
Комментарии