Номера ошибок
Каждый из макросов, определённых в <errno.h>, раскрывается в целочисленное константное выражение типа int с уникальным положительным значением. Следующие константы определены стандартом ISO C. Реализация может определять и другие константы, если их имена начинаются с 'E', за которым следуют цифры или заглавные буквы.
Определён в заголовочном файле <errno.h> |
|
|---|---|
|
EDOM | Аргумент математической функции вне области определения (макроконстанта) |
|
EILSEQ
(C95) | Недопустимая байтовая последовательность (макроконстанта) |
|
ERANGE | Результат слишком велик (макроконстанта) |
Примечания
Многие дополнительные константы errno определены стандартом POSIX и стандартной библиотекой C++; отдельные реализации могут определять и другие константы, например errno(3) в Linux или intro(2) в BSD и OS X.
Пример
#include <errno.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
int main(void)
{
errno = 0;
printf("log(-1.0) = %f\n", log(-1.0));
printf("%s\n\n", strerror(errno));
errno = 0;
printf("log(0.0) = %f\n", log(0.0));
printf("%s\n", strerror(errno));
}
Возможный вывод:
log(-1.0) = nan Numerical argument out of domain log(0.0) = -inf Numerical result out of range
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
- 7.5/2 Ошибки <errno.h> (с. TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.5/2 Ошибки <errno.h> (с. TBD)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.5/2 Ошибки <errno.h> (с. 205)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.5/2 Ошибки <errno.h> (с. 186)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.1.3 Ошибки <errno.h>
См. также
| макрос, раскрывающийся в совместимую с POSIX потоково-локальную переменную номера ошибки (макропеременная) |
|
выводит в stderr строку символов, соответствующую текущей ошибке (функция) |
|
|
(C11)(C11) | возвращает текстовое описание заданного кода ошибки (функция) |
| Документация по C++ для номеров ошибок | |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/error/errno_macros