首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C中的退出函数

C中的退出函数
EN

Stack Overflow用户
提问于 2010-09-07 10:09:21
回答 4查看 1.9K关注 0票数 8

exit()_exit()_Exit()在C中有什么区别?

我该如何决定使用哪一种?

在巴什,

man 2出口

给了我_EXIT(2)页,而

man 3出口

给出页面出口(3)。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-07 10:11:30

exit()在清理后终止。

_exit()在呼叫后立即终止。

如果在调用exit()函数时有一些堆栈损坏,程序可能会因分段故障而关闭,如果使用_exit(),则以快速模式退出程序。

http://msdn.microsoft.com/en-us/library/6wdz5232.aspx收到的

exit() -执行完整的C库终止过程,终止进程,并使用提供的状态代码退出。

_exit() -执行快速C库终止过程,终止进程,并使用提供的状态代码退出。

_cexit() -执行完整的C库终止过程并返回给调用方,但不终止进程。

_c_exit() -执行快速C库终止过程并返回给调用方,但不终止进程。

票数 7
EN

Stack Overflow用户

发布于 2010-09-07 11:33:57

C99中的规范是exit_Exit

两者的不同之处在于,exit还执行可能注册到atexit并关闭流等的处理程序,而_Exit没有调用atexit例程,并且可能或不正确地关闭流。

_exit来自POSIX,具有与_Exit相似的属性,其不同之处在于它能够正确关闭流。

总之,只要您可以使用exit,这是最干净的终止方式。

票数 7
EN

Stack Overflow用户

发布于 2010-09-07 10:38:22

来自人类:

出口:

所有用atexit(3)和on_exit(3)注册的函数都按其注册顺序被调用.所有开放的stdio(3)流都被冲洗和关闭。删除由tmpfile(3)创建的文件。

_exit:

函数_exit()与exit(3)类似,但不调用在atexit(3)或on_exit(3)中注册的任何函数。它是否刷新标准I/O缓冲区并删除使用tmpfile(3)创建的临时文件取决于实现。另一方面,_exit()关闭打开的文件描述符.

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

https://stackoverflow.com/questions/3657667

复制
相关文章

相似问题

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