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()
来终止进程。