C++ 什么';_Exit()和_Exit()之间的区别是什么?

C++ 什么';_Exit()和_Exit()之间的区别是什么?,c++,C++,为了回答这个问题,有些人说要用,有些人说要用。有人能解释一下两者之间的区别(如果有的话)以及两者的起源吗?\u出口(2)来自C99\退出(2)来自POSIX。至少,根据我在这里安装的手册页 它们完全相同。从手册页上看: 函数_Exit()等价于_Exit() 虽然在C++11中,它被标准化为std::_Exit或std::quick_Exit。根据。\u exit()和\u exit()是完全相同的。要理解exit()和\u exit()之间的区别,您需要了解退出(3)和退出(3)上的函数。这些

为了回答这个问题,有些人说要用,有些人说要用。有人能解释一下两者之间的区别(如果有的话)以及两者的起源吗?

\u出口(2)
来自C99<代码>\退出(2)来自POSIX。至少,根据我在这里安装的手册页

它们完全相同。

从手册页上看:

函数_Exit()等价于_Exit()

虽然在C++11中,它被标准化为std::_Exit或std::quick_Exit。根据。

\u exit()
\u exit()
是完全相同的。要理解
exit()
\u exit()
之间的区别,您需要了解退出(3)和退出(3)上的函数
。这些函数用于注册在进程正常退出时自动调用的函数,即通过从
main()
返回,或通过调用
exit()
和atexit()的不同之处在于它们允许使用不同的签名注册函数(将这些注册函数视为进程的析构函数(如面向对象编程中的析构函数))

exit()。在执行它们时,它调用
\u exit()
<代码>\u exit()
执行正常的进程终止操作—关闭文件描述符、释放内存、将孤立子进程重新设置为init的子进程,等等。将
\u exit()
视为进程用来终止自身的基本系统调用


由于许多应用程序在退出时不使用
atexit()
,因此,对于这些应用程序,
\u exit()
\u exit()
exit()
的行为完全相同。

Erm,对这个问题的回答,包括定义它们的标准,几乎都是正确的。事实上,你链接到的手册页会准确地告诉你每个人的来源。。。在这些答案中,你需要澄清什么?来源,以及为什么选择一个而不是另一个。在_exit()中的“e”是小写,而在_exit()中的“e”是大写两者都是相同的。在Linux上,它们是等效的。但是,在OS X(BSD)上,
Exit()函数终止而不调用使用atexit(3)函数注册的函数,并且可以执行或不执行
Exit()
(不带下划线)所列的刷新打开输出流的其他操作,关闭打开的流并取消使用
tmpfile(3)
创建的临时文件的链接。在此之后,
exit()
\u exit()
都调用
\u exit()
来终止进程。