MENU

C++的程序终止函数

之前一直看到C++的程序终止函数就头疼,好几个傻傻分不清楚,今天学习了一波,记录一下。

std::_Exit()

[[noreturn]] void _Exit( int exit_code ) noexcept;

结束程序,返回exit_code

std::abort()

[[noreturn]] void abort() noexcept;

引发SIGABRT

若存在,触发传递给std::signal(SIGABRT, )的函数

否则,不正常程序终止(Aborted)

std::terminate()

[[noreturn]] void terminate() noexcept;

调用当前安装的std::terminate_handler,默认为std::abort()

错误抛出异常或异常未被捕捉会导致其被调用

std::quick_exit()

[[noreturn]] void quick_exit( int exit_code ) noexcept;

以注册顺序的逆序调用传递给std::at_quick_exit()的函数

调用std::_Exit(exit_code)

std::exit()

[[noreturn]] void exit( int exit_code );

析构静态和线程存储期对象,以注册顺序的逆序调用传递给std::at_exit()的函数

结束程序,返回exit_code

main()结束会自动调用

Tags: None
Leave a Comment

captcha
请输入验证码

已有 2 条评论
  1. 刚才刚有人问我[[noreturn]]是啥意思……

    1. @VCode字面意思@(滑稽)函数不会返回