Номера ошибок
Каждый из макросов, определенных в <errno.h>, раскрывается до целочисленной константы выражения типа int и с уникальным положительным значением. Следующие константы определены стандартом ISO C. Реализация может определить больше, при условии, что они начинаются с 'E' , за которым следуют цифры или заглавные буквы.
Определено в заголовке <errno.h> |
|
|---|---|
| EDOM | Математическое аргумент вне области определения функции (макроконстанта) |
| EILSEQ
(C95) | Недопустимая последовательность байтов (макроконстанта) |
| ERANGE | Результат слишком большой (макроконстанта) |
Примечания
Многие дополнительные константы errno определены стандартом POSIX и библиотекой стандартной C++, и отдельные реализации могут определить ещё больше, например, errno(3) в Linux или intro(2) в BSD и OS X.
Пример
#include <stdio.h>
#include <math.h>
#include <errno.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
Ссылки
- Стандарт 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/w/c/error/errno_macros