我正在尝试在使用管道分叉的子进程和父进程之间进行通信。我能够让它在相当现代的 python 版本中工作(下面的代码)。我正在努力让它在 Jython 2.1 中工作(我没有更新它的选项)。
有人可以在这里指出我正确的方向吗?
#!/usr/bin/env python
import os
import time
import sys
print "starting"
r, w = os.pipe()
prcID = os.fork()
if prcID:
# PARENT PROCESS
# Set up write pipe
os.close(r)
w = os.fdopen(w,'w')
for i in range(5):
time.sleep(1)
print "- " + str(i) + " -"
print "Parent is about to write"
w.write("OMG!!!! IT WORKS!!!!!")
print "Parent is done writing"
w.close()
os.waitpid(prcID, 0)
print "Parent done Waiting!"
else:
# CHILD PROCESS
os.close(w)
r = os.fdopen(r)
strout = r.read()
print "Child read: " + strout
print "Child done"
sys.exit(0)
#END of PARENT
print "done"