Re: How to get return values of a forked process
- From: Ian Kelly <ian.g.kelly@xxxxxxxxx>
- Date: Tue, 21 Jun 2011 12:54:57 -0600
On Tue, Jun 21, 2011 at 12:26 PM, Ian <ian.lake@xxxxxxxxxxxxxx> wrote:
myForkedScript has code like this:
Is using os._exit() the correct way to get a return value back to the
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
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