美文网首页
exit, _exit, _Exit - C++ Builder

exit, _exit, _Exit - C++ Builder

作者: 玄坴 | 来源:发表于2020-06-29 10:30 被阅读0次

C++ Builder 参考手册<cstdlib>exit, _exit, _Exit


头文件:#include <cstdlib>
命名空间:std
函数原型:

void exit(int status);
void _exit(int status);
void _Exit(int status);

参数:

status:给操作系统或父进程的返回值:
0:正常结束,非0:异常结束。

返回值:

无。

要注意 _Exit 和 _exit 首字母大小写不同,它们是不同的函数,这几个函数的具体区别如下:

  • exit 是标准 C/C++ 函数,结束进程,并且调用 atexit 添加的函数,调用全局变量的析构函数,但是不会调用当前函数的局部变量的析构函数,不会弹出错误信息 (无论参数的值是多少);
  • _exit 不是标准 C/C++ 函数,但是很多编程开发工具,例如 C++ Builder 或 Visual C++ 里面都有这个函数,MSDN 里面也有说明,是和 exit 相同的函数;
  • _Exit 是 C++ 11 函数,结束进程,不会调用任何的析构函数,如同 abort 但是不会弹出错误信息。

这些函数的 status 参数可以是 (不限于) 以下表格的常数:

常数 说明
EXIT_SUCCESS 0 程序正常结束
EXIT_FAILURE 1 程序异常结束

以下表格为程序测试结果:

退出时执行的函数 执行 std::abort 执行 std::exit
使用 std::atexit 添加的函数 [ ] [√]
使用 Sysutils::AddExitProc 添加的函数 [ ] [√]
使用 Sysutils::AddTerminateProc 添加的函数 [ ] [ ]
使用 #pragma exit 添加的函数 [ ] [√]
当前函数局部变量的析构函数 [ ] [ ]
主窗口析构函数 [ ] [√]
全局变量析构函数 [ ] [√]

例子:

void _USERENTRY Func1(void)
{
    ShowMessage(L"正在执行函数 Func1");
}
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    std::atexit(Func1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    std::exit(EXIT_SUCCESS);
}

运行结果:

点击 Button1 按钮,弹出 std::atexit 添加的函数打开的提示信息对话框:“正在执行函数 Func1”,关闭这个对话框,程序退出。

运行结果

相关:


C++ Builder 参考手册<cstdlib>exit, _exit, _Exit

相关文章

  • exit, _exit, _Exit - C++ Builder

    C++ Builder 参考手册 ➙ ➙ exit, _exit, _Exit 头文件:#in...

  • shell脚本常用命令-exit 和 if

    1、exit exit 0 退出shell,成功 exit 1 退出shell,失败 exit 2 退出s...

  • exit(0)与exit(1)、return区别(转载)

    exit(0)与exit(1)、return区别 exit(0):正常运行程序并退出程序; exit(1):非正常...

  • exit() _exit() return

    exit(0):正常运行程序并退出程序; exit(1):非正常运行导致退出程序; return():返回函数,若...

  • APP启动与退出实验

    -退出- function exit_1: function exit_2: function exit_3: 两...

  • exit和_exit的区别

    exit()函数和_exit()函数看似相同,实际上其中的操作差别还是挺大的 _exit()和exit两个函数最终...

  • exit()和_exit()区别

    如图所示:_exit()函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核的各种数据结构;ex...

  • _exit、exit、return区别

    这三个函数的区别多少知道一点,但对其细节有时候会忘了这里进行简单总结一下备忘 return是跳出当前的函数执行环境...

  • exit 0 exit 1

    exit 0:正常运行程序并退出程序;exit 1:非正常运行导致退出程序;exit 0 可以告知你的程序的使...

  • Pytest笔记:测试用例的执行

    Pytest 的 Exit Code 含义清单 Exit code 0 所有用例执行完毕,全部通过 Exit c...

网友评论

      本文标题:exit, _exit, _Exit - C++ Builder

      本文链接:https://www.haomeiwen.com/subject/eqyefktx.html