How to get return values of a forked process
Ian Kelly
ian.g.kelly at gmail.com
Tue Jun 21 14:54:57 EDT 2011
More information about the Python-list mailing list
Tue Jun 21 14:54:57 EDT 2011
- Previous message (by thread): How to get return values of a forked process
- Next message (by thread): How to get return values of a forked process
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Tue, Jun 21, 2011 at 12:26 PM, Ian <ian.lake at 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).
- Previous message (by thread): How to get return values of a forked process
- Next message (by thread): How to get return values of a forked process
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list