abort函数

023 UNIX再学习 -- 函数abort

走远了吗. 提交于 2019-12-19 01:05:50
abort 函数之前有讲过的, 参看: C语言再学习 -- 关键字return和exit ()函数 然后我们在讲 8 中进程终止时,也说过。 参看: UNIX再学习 -- exit 和 wait 系列函数 下面来详细讲一下它。 一、函数 abort # include <stdlib.h> void abort ( void ) ; 此函数无返回值 1、函数功能 abort 函数的功能是使程序异常终止 2、函数解析 abort 函数首先解除进程对 SIGABRT 信号的阻止,然后向调用进程发送该信号。 abort 函数会导致进程的异常终止除非 SIGABRT 信号被捕捉并且信号处理句柄没有返回。 如果 abort 函数导致进程终止,则所有打开的流都将关闭并刷新。 如果SIGABRT信号被忽略,或被返回的处理程序捕获,则abort()函数仍将终止进程。 它通过恢复 SIGABRT 的默认配置,然后再次发送信号来做到这一点。 3、abort 函数实现 # include <signal.h> # include <stdio.h> # include <stdlib.h> # include <unistd.h> void abort ( void ) /* POSIX-style abort() function */ { sigset_t mask; struct

研究下vc++的abort函数

▼魔方 西西 提交于 2019-12-13 18:13:28
最近在调试几个问题时,发现跟abort函数有关,以前只是简单使用,现在却发现不简单,就多留意了下。 简介 abort中止当前进程并返回错误代码。异常终止一个进程。中止当前进程,返回一个错误代码。错误代码的 缺省值 是3。 代码 /*** *abort.c - abort a program by raising SIGABRT * * Copyright (c) Microsoft Corporation. All rights reserved. * *Purpose: * defines abort() - print a message and raise SIGABRT. * *******************************************************************************/ #include <cruntime.h> #include <stdlib.h> #include <internal.h> #include <awint.h> #include <rterr.h> #include <signal.h> #include <oscalls.h> #include <mtdll.h> #include <dbgint.h> #ifdef _DEBUG #define _INIT_ABORT