79
votes

Please help me in clarifying the concept of these two python statements in terms of difference in functionality:

  1. sys.exit(0)

  2. os._exit(0)

2
Did you look up the docs? - jdi

2 Answers

82
votes

According to the documentation:

os._exit():

Exit the process with status n, without calling cleanup handlers, flushing stdio buffers, etc.

Note The standard way to exit is sys.exit(n). _exit() should normally only be used in the child process after a fork().

38
votes

os._exit calls the C function _exit() which does an immediate program termination. Note the statement "can never return".

sys.exit() is identical to raise SystemExit(). It raises a Python exception which may be caught by the caller.

Original post: http://bytes.com/topic/python/answers/156121-os-_exit-vs-sys-exit