On Jun 21, 1:54 pm, Ian Kelly <ian.g.ke...@gmail.com> wrote: > On Tue, Jun 21, 2011 at 12:26 PM, Ian <ian.l...@rocketmail.com> wrote: > > myForkedScript has code like this: > > if fail: > > os._exit(1) > > else: > > os._exit(os.EX_OK) > > > Is using os._exit() the correct way to get a return value back to the > > main process? > > sys.exit() is the preferred way. > > > I thought the value 'n', passed in os._exit(n) would be the value I > > get returned. In the case of a failure, I get 256 returned rather > > than 1. > > According to the docs, on Unix: > > """ > Wait for completion of a child process, and return a tuple containing > its pid and exit status indication: a 16-bit number, whose low byte is > the signal number that killed the process, and whose high byte is the > exit status (if the signal number is zero); the high bit of the low > byte is set if a core file was produced. > """ > > And on Windows: > > """ > Wait for completion of a process given by process handle pid, and > return a tuple containing pid, and its exit status shifted left by 8 > bits (shifting makes cross-platform use of the function easier). > """ > > (256 >> 8) == 1 > > However, I would advise using the subprocess module for this instead > of the os module (which is just low-level wrappers around system > calls).
Where did you find the Unix docs you pasted in? I didn't find it in the man pages. Thank you. Based on what you say, I will change my os._exit() to sys.exit(). -- http://mail.python.org/mailman/listinfo/python-list