assert_perror(3) comprueba errnum y aborta

SINOPSIS

#include <assert.h>


void assert_perror(int errnum);

DESCRIPCIÓN

Si la macro NDEBUG estaba definida en el momento en que <assert.h> fue incluido por última vez, la macro assert_perror() no genera ningún código, y por tanto no hace nada. En otro caso, la macro assert_perror() imprime un mensaje de error a la salida estándar y termina el programa llamando a abort() si errnum es distinto de cero. El mensaje contiene el nombre de fichero, nombre de función y número de línea de llamada a la macro, y la salida de strerror(errnum).

VALOR DEVUELTO

No se devuelve ningún valor.

CONFORME A

Esta función es una extensión de GNU.

FALLOS

El propósito de las macros de asertos es ayudar al programador a encontrar fallos en su programa, cosas que no pueden ocurrir a menos que haya un error de codificación. Sin embargo, con llamadas al sistema o a funciones de biblioteca la situación es bastante diferente, y se pueden devolver códigos de error, y se devolverán, y deberían ser comprobados. No por un aserto, donde la comprobación desaparece si la NDEBUG está definida, sino por un código de manejo de errores apropiado. Nunca use esta macro.