assert(3) Library Functions Manual assert(3) NOME assert - aborta a execucao do programa se a assertiva for falsa BIBLIOTECA Standard C library (libc, -lc) SINOPSE #include void assert(scalar expressao); DESCRICAO Essa macro pode ajudar os programadores a encontrar erros em seus programas ou a lidar com casos excepcionais atraves de uma falha que produzira uma saida de depuracao limitada. Se expressao for falsa (isto e, compara igual a zero), assert() imprime uma mensagem de erro na saida de erro padrao e encerra o programa chamando abort(3). A mensagem de erro inclui o nome do arquivo e a funcao que contem a chamada de assert(), o numero da linha do codigo-fonte da chamada e o texto do argumento; algo como: prog: algum_arquivo.c:16: algum_arquivo: Assertiva `val == 0' falhou. Se a macro NDEBUG for definida no momento em que foi incluido pela ultima vez, a macro assert() gera nenhum codigo e, portanto, nao faz absolutamente nada. Nao e recomendavel definir NDEBUG se usar assert() para detectar condicoes de erro, pois o software pode se comportar de forma nao deterministica. VALOR DE RETORNO Nenhum valor e retornado. ATRIBUTOS Para uma explicacao dos termos usados nesta secao, consulte attributes(7). +--------------------------------------------+---------------+---------+ |Interface | Atributo | Valor | +--------------------------------------------+---------------+---------+ |assert() | Thread safety | MT-Safe | +--------------------------------------------+---------------+---------+ PADROES C11, POSIX.1-2008. HISTORICO C89, C99, POSIX.1-2001. Em C89, expressao precisa ser do tipo int e um resultado indefinido se ela nao for, mas em C99 ela deve ser do tipo escalar. BUGS assert() e implementada como uma macro. Se a expressao avaliada gerar erro, o comportamento do programa dependera de se NDEBUG estiver definida ou nao. Podem surgir "heisenbugs", que desaparecem quando a depuracao estiver ativada. VEJA TAMBEM abort(3), assert_perror(3), exit(3) TRADUCAO A traducao para portugues brasileiro desta pagina man foi criada por Paulo Cesar Mendes , Andre Luiz Fassone e Rafael Fontenelle . Esta traducao e uma documentacao livre; leia a Licenca Publica Geral GNU Versao 3 ou posterior para as condicoes de direitos autorais. Nenhuma responsabilidade e aceita. Se voce encontrar algum erro na traducao desta pagina de manual, envie um e-mail para a lista de discussao de tradutores . Linux man-pages 6.12 23 julho 2024 assert(3)