首页 文章

退出C中的功能

提问于
浏览
8

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

我该如何决定使用哪个?

在bash,

男子2退出

给了我页面_EXIT(2),而

男子3退出

给了页面EXIT(3) .

4 回答

  • 1

    exit() 清理后终止 .

    _exit() 在通话结束后立即终止 .

    如果在调用 exit() 函数时有一些堆栈损坏,程序可能会关闭分段错误,如果您使用 _exit() ,则程序在快速模式下退出 .

    http://msdn.microsoft.com/en-us/library/6wdz5232.aspx你有

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

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

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

    _c_exit() - 执行快速C库终止过程并返回给调用者,但不终止该过程 .

  • 7

    C99中的规范是 exit_Exit .

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

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

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

  • 7

    来自男人:

    exit:以atexit(3)和on_exit(3)注册的所有函数按照注册的相反顺序调用...所有打开的stdio(3)流都被刷新并关闭 . 删除由tmpfile(3)创建的文件 . _exit:函数_exit()类似于exit(3),但不调用使用atexit(3)或on_exit(3)注册的任何函数 . 它是否刷新标准I / O缓冲区并删除使用tmpfile(3)创建的临时文件是依赖于实现的 . 另一方面,_exit()会关闭打开的文件描述符......

  • 0

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

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

    我纠正了你的回答

相关问题