abort

引发不正常进程的终止。
基础资料
  • 性质:函数名
  • 功能:异常终止一个进程
  • 头文件:#include
  • 概述:引发不正常进程的终止
  • 简介

    函数简介

    函数名:abort

    头文件:#include

    功能:异常终止一个进程。中止当前进程,返回一个错误代码。错误代码的缺省值是3。

    该函数产生SIGABRT信号并发送给自己,默认情况下导致程序终止不成功的终止错误代码返回到主机环境。

    自动或静态存储持续时间的对象,而无需调用任何atexit函数,析构函数不执行程序终止。函数永远不会返回到其调用者。

    用法:void abort(void);

    举例

    程序例:

    #include

    #include

    int main(void)

    {

    printf("Calling abort()\n");

    abort();

    return 0; /* This is never reached */

    }

    注意事项

    因为调用abort()而终止,那么是因为某些条件成立,而用户不得不作出终止当前进程的决定(参考assert()),abort()行为本身并不异常,如果用户调用了,那么进程就终止,完全是预期的行为。原理上来说,abort通过给自己发送SIGABRT信号,然后kernel会杀掉自己,并coredump。但是,如果用户重新定义了SIGABRT信号的行为呢?

    结果是,会打印"catch signal",然后还是coredump了。原因是:abort()函数里面先给自己发送SIGABRT保证handler执行,然后再重新注册了SIGABRT,会修改成默认行为,再次给自己发送SIGABRT,保证执行默认行为,coredump。同时,还会flush所有打开的文件,然后关闭掉。

    首页
    科技
    #贵族
    最新入驻
    贾科莫·普契尼
    Caroline Lufkin
    翁建宇
    相关阅读
    waitpid
    内容词条·1032人浏览
    共享库
    内容词条·3995人浏览
    sigaction
    内容词条·124人浏览
    pause函数
    内容词条·4451人浏览
    fchown
    内容词条·3064人浏览
    chdir
    内容词条·6656人浏览
    • 网站地图
    • |

    Copyright 2023 fuwu029.com赣ICP备2022008914号-4