abort
Определено в заголовочном файле <stdlib.h> | ||
|---|---|---|
void abort(void); | (до C11) | |
_Noreturn void abort(void); | (с C11) (до C23) | |
[[noreturn]] void abort(void); | (с C23) |
Вызывает аномальное завершение программы, если SIGABRT не перехватывается обработчиком сигнала, переданным в signal, и обработчик не возвращает управление.
Функции, переданные в atexit(), не вызываются. Закрытие открытых ресурсов, таких как файлы, определяется реализацией. Реализация возвращает определённый ею статус в среду выполнения, указывающий на неудачное выполнение.
Параметры
(нет)
Значение возврата
(нет)
Примечания
POSIX устанавливает, что функция abort() переопределяет блокировку или игнорирование сигнала SIGABRT.
Некоторые встроенные функции компилятора, например, __builtin_trap (gcc, clang и icc) или __fastfail/__debugbreak (msvc), могут использоваться для завершения программы как можно быстрее.
Пример
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp = fopen("data.txt","r");
if (fp == NULL)
{
fprintf(stderr, "error opening file data.txt in function main()\n");
abort();
}
/* Normal processing continues here. */
fclose(fp);
printf("Normal Return\n");
return 0;
}Вывод:
error opening file data.txt in function main()
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.22.4.1 Функция abort (стр: 255)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.22.4.1 Функция abort (стр: 350)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.20.4.1 Функция abort (стр: 315)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.10.4.1 Функция abort
См. также
| вызывает нормальное завершение программы с очисткой (функция) |
|
регистрирует функцию, которая должна быть вызвана при exit() вызове (функция) |
|
|
(C11) | вызывает нормальное завершение программы без полной очистки (функция) |
Документация C++ для abort |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/program/abort