首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >_exit()和_Exit()有什么区别?

_exit()和_Exit()有什么区别?
EN

Stack Overflow用户
提问于 2012-01-10 22:30:14
回答 3查看 2.4K关注 0票数 4

作为对this question的回答,一些人说使用_Exit(),另一些人说使用_exit()。有人能解释一下两者之间的区别(如果有的话),以及两者的起源吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-10 22:35:20

直接从手册页here

函数_exit()等同于_Exit()。

尽管在C++11中,它被标准化为std::_Exit或std::quick_exit。根据Mike Seymour here的说法。

票数 5
EN

Stack Overflow用户

发布于 2012-01-10 22:34:08

_Exit(2)来自C99。_exit(2)来自POSIX。至少,根据我在这里安装的手册页。

它们是完全等价的。

票数 5
EN

Stack Overflow用户

发布于 2017-03-26 03:48:56

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

exit()在被调用时会尝试执行使用atexit()onexit()注册的所有函数。在执行它们时,它调用_exit()_exit()完成了正常的进程终止工作--关闭文件描述符,释放内存,将孤立的孩子重新设置为初始化的父母,等等。可以将_exit()看作是进程用来终止自身的基本系统调用。

由于大量应用程序都不使用atexit()on_exit(),因此_exit()_Exit()exit()的行为是相同的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8804853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档