NPE*_*NPE 64
根据文件:
Run Code Online (Sandbox Code Playgroud)os._exit():退出状态为n的进程,不调用清理处理程序,刷新stdio缓冲区等.
注意退出的标准方法是
sys.exit(n)._exit()通常只应在a之后的子进程中使用fork().
pre*_*lic 29
os._exit调用C函数_exit(),它立即终止程序.请注意语句"永远不会返回".
sys.exit()是完全相同的raise SystemExit().它引发了一个Python异常,可能被调用者捕获.
原帖:http://bytes.com/topic/python/answers/156121-os-_exit-vs-sys-exit
摘自《Linux编程接口》一书:
\n程序通常不会直接调用\xe2\x80\x99 _exit(),而是调用exit()库函数,\n库函数在调用 之前执行各种操作_exit()。
at_exit()和注册的函数on_exit())被调用,\n按照其注册的相反顺序_exit()调用。有人可以详细说明为什么_exit()通常只在 fork() 之后的子进程中使用吗?
exit()子进程可以调用_exit(),而不是调用 ,这样它就不会刷新 stdio\n缓冲区。此技术举例说明了一个更通用的原则:在创建子进程的应用程序中,通常只有一个进程(通常是父进程)应通过 终止exit(),而其他进程应通过 终止_exit()。这确保只有一个进程调用退出处理程序并刷新\nstdio 缓冲区,这通常是可取的