Spec-Zone.ru › C

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
вызывает нормальное завершение программы с очисткой
(функция)
atexit
регистрирует функцию, которая должна быть вызвана при exit() вызове
(функция)
quick_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

Spec-Zone.ru

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