Spec-Zone.ru › C

Номера ошибок

Каждый из макросов, определённых в <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>

См. также

errno
макрос, раскрывающийся в совместимую с POSIX потоково-локальную переменную номера ошибки
(макропеременная)
perror
выводит в stderr строку символов, соответствующую текущей ошибке
(функция)
strerrorstrerror_sstrerrorlen_s
(C11)(C11)
возвращает текстовое описание заданного кода ошибки
(функция)
Документация по C++ для номеров ошибок

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/error/errno_macros

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API