退出C中的function

C中的exit() ,_ exit( _Exit()有什么区别?

我该如何决定使用哪个?

在bash上,

男子2出口

给了我页面_EXIT(2),而

男子3出口

给了页面EXIT(3)。

exit()在清理后终止。

_exit()在调用后立即终止。

如果你有一些堆栈损坏,而exit()函数被调用,程序可能会关闭分段错误,如果你使用_exit() ,程序退出快速模式。

来自http://msdn.microsoft.com/en-us/library/6wdz5232.aspx

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

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

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

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

C99中的规范是exit_Exit

两者之间的区别在于exit也执行可以使用atexit注册的处理程序并关闭流等,而_Exit不会调用atexit例程,可能会也可能不会正确关闭流。

_exit来自POSIX,具有与_Exit类似的属性,不同之处在于可以保证正确关闭流。

总之,只要你能使用exit ,这就是最简洁的终止方法。

来自男人:

出口:
用atexit(3)和on_exit(3)注册的所有函数都按照与注册相反的顺序调用…所有打开的stdio(3)流都被刷新并关闭。 删除tmpfile(3)创建的文件。

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

1.exit():它清理像关闭文件描述符,文件流等工作,2._exit():它不能清理像关闭文件描述符,文件流等工作

这些是exit()和_exit()的主要区别。

我纠正了你的回答