Namespaces
Variants

abort

From cppreference.net
Definido en el encabezado <stdlib.h>
void abort ( void ) ;
(hasta C11)
_Noreturn void abort ( void ) ;
(desde C11)
(hasta C23)
[ [ noreturn ] ] void abort ( void ) ;
(desde C23)

Causa la terminación anormal del programa a menos que SIGABRT esté siendo capturado por un manejador de señales pasado a signal y el manejador no retorne.

Las funciones pasadas a atexit() no son llamadas. Si los recursos abiertos como archivos se cierran está definido por la implementación. Un estado definido por la implementación es retornado al entorno anfitrión que indica ejecución fallida.

Contenidos

Parámetros

(ninguno)

Valor de retorno

(ninguno)

Notas

POSIX especifica que la función abort() anula el bloqueo o la ignorancia de la señal SIGABRT .

Algunos intrínsecos del compilador, como __builtin_trap (gcc, clang, e icc) o __fastfail / __debugbreak (msvc), pueden utilizarse para terminar el programa lo más rápido posible.

Ejemplo

#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;
}

Salida:

error opening file data.txt in function main()

Referencias

  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.22.4.1 La función abort (p: 255)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.22.4.1 La función abort (p: 350)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.20.4.1 La función abort (p: 315)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 4.10.4.1 La función abort

Véase también

provoca la terminación normal del programa con limpieza
(función)
registra una función para ser llamada al exit() invocación
(función)
provoca la terminación normal del programa sin limpieza completa
(función)