Namespaces
Variants

abort

From cppreference.net
Определено в заголовочном файле <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() вызове
(функция)
вызывает нормальное завершение программы без полной очистки
(функция)
C++ documentation для abort