Namespaces
Variants

Error numbers

From cppreference.net
< c ‎ | error

Каждый из макросов, определённых в <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-совместимую thread-local переменную номера ошибки
(макрос-переменная)
выводит строку символов, соответствующую текущей ошибке, в stderr
(функция)
возвращает текстовое описание заданного кода ошибки
(функция)
C++ documentation для Error numbers