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 缓冲区,这通常是可取的