close
Пространства имён
Варианты
Действия

Обработка ошибок

Материал из cppreference.com
< c
 
 
Обработка ошибок
Коды ошибок
Оригинал:
Error codes
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Коды ошибок
Утверждений
Оригинал:
Assertions
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
 

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

Определены в заголовочном файле <errno.h>
макрос, который расширяется в POSIX-совместимую переменную с номером ошибки, локальную в потоке
(переменная-макрос) [править]
макросы для стандартных POSIX-совместимых условий ошибки
(макроконстанта) [править]

Утверждения

Определены в заголовочном файле <assert.h>
завершает программу, если определённое пользователем условие не равно true. Может отключаться для сборки релиза
(функция-макрос) [править]
(C11)(удалено в C23)
выдаёт во время компиляции диагностическое сообщение, если значение константного выражения ложь
(ключевое слово-макрос)

Проверка выхода за границы

Стандартная библиотека предоставляет для некоторых существующих функций версии с проверкой выхода за границы (gets, fopen, printf, strcpy, wcscpy, mbstowcs, qsort, getenv, и т. д.). Эта функциональность необязательна и доступна только если __STDC_LIB_EXT1__ определён. Следующие макросы и функции поддерживают эту функциональность.

Определены в заголовочном файле <errno.h>
Определены в заголовочном файле <stdio.h>
errno_t
(C11)
typedef-объявление для типа int, используемое для самодокументирующих функций, возвращающих значения errno
(определение типа)
Определены в заголовочном файле <stddef.h>
Определены в заголовочном файле <stdio.h>
Определены в заголовочном файле <stdlib.h>
Определены в заголовочном файле <string.h>
Определены в заголовочном файле <time.h>
Определены в заголовочном файле <wchar.h>
rsize_t
(C11)
typedef-объявление для типа size_t, используемое для самодокументирующих функций, проверяющих диапазоны своих параметров во время выполнения
(определение типа)
Определены в заголовочном файле <stdint.h>
RSIZE_MAX
(C11)
максимальный допустимый размер для функций с проверкой границ, расширяется в константу или переменную, которая может изменяться во время выполнения (напр., как изменяется размер текущей выделенной памяти)
(переменная-макрос)
Определены в заголовочном файле <stdlib.h>
устанавливает вызов ошибки для функций с проверкой выхода за границы
(функция) [править]
прерывает вызов функций с проверкой выхода за границ
(функция) [править]
игнорирует вызов функций с проверкой выхода за границы
(функция) [править]

Замечание: реализации функций с проверкой границ доступны в библиотеках с отрытым исходным кодом Safe C и Slibc, как часть Watcom C. Также существует несовместимый набор функций с проверкой границ в Visual Studio.

(начиная с C11)

Замечания

Начиная с C23, static_assert является ключевым словом, которое может быть также и предопределённым макросом, так что <assert.h> больше его не предоставляет.

Ссылки

  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.2 Диагностика <assert.h> (стр. 186-187)
  • 7.5 Ошибки <errno.h> (стр. 205)
  • 7.19 Основные определения <stddef.h> (стр. 288)
  • 7.20 Целые типы <stdint.h> (стр. 289-295)
  • 7.21 Ввод/вывод <stdio.h> (стр. 296-339)
  • 7.22 Общие утилиты <stdlib.h> (стр. 340-360)
  • K.3.1.3 Использование errno (стр. 584)
  • K.3.2/2 errno_t (стр. 585)
  • K.3.3/2 rsize_t (стр. 585)
  • K.3.4/2 RSIZE_MAX (стр. 585)
  • 7.31.3 Ошибки <errno.h> (стр. 455)
  • 7.31.10 Целые типы <stdint.h> (стр. 456)
  • 7.31.11 Ввод/вывод <stdio.h> (стр. 456)
  • 7.31.12 Общие утилиты <stdlib.h> (стр. 456)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.2 Диагностика<assert.h> (стр. 169)
  • 7.5 Ошибки <errno.h> (стр. 186)
  • 7.26.3 Ошибки <errno.h> (стр. 401)
  • 7.26.8 Целые типы <stdint.h> (стр. 401)
  • 7.26.9 Ввод/вывод <stdio.h> (стр. 402)
  • 7.26.10 Общие утилиты <stdlib.h> (стр. 402)
  • Стандарт C89/C90 (ISO/IEC 9899:1990):
  • 4.2 ДИАГНОСТИКА <assert.h>
  • 4.1.3 Ошибки <errno.h>
  • 4.13.1 Ошибки <errno.h>
  • 4.13.6 Ввод/вывод <stdio.h>
  • 4.13.7 Общие утилиты <stdlib.h>

См. также

определяет механизм обработки ошибок, используемый основными математическими функциями
(макроконстанта) [править]
Документация C++ по обработке ошибок