Попробуйте код ниже с: python fork.py
и с: python fork.py 1
, чтобы увидеть, что он делает.
#!/usr/bin/env python2
import os
import sys
child_exit_status = 0
if len(sys.argv) > 1:
child_exit_status = int(sys.argv[1])
pid = os.fork()
if pid == 0:
print "This is the child"
if child_exit_status == 0:
os.execl('/usr/bin/whoami')
else:
os._exit(child_exit_status)
else:
print "This is the parent"
(child_pid, child_status) = os.wait()
print "Our child %s exited with status %s" % (child_pid, child_status)
Вопрос: Как получается, что дочерний процесс может выполнять «печать», и он все еще выводитсяв том же месте, что и родительский процесс?
(использую Python 2.6 в Ubuntu 10.04)