我正在尝试用python编写一个程序,通过父函数将2个整数写入管道,然后通过子函数读取这些相同的整数。然后子函数应该打印出两者的乘积。
问题是,当我运行它时,它会像预期的那样等待 5 秒,然后返回值 441 而不是 2。
希望有人可以帮助弄清楚如何修复此代码:)
import os,time
def child(pipein):
while True:
num1 = int(os.read(pipein,32))
num2 = int(os.read(pipein,32))
r=(num1)*(num2)
print(r)
os._exit(0)
def parent():
pipein,pipeout = os.pipe()
x=5
if os.fork()==0:
child(pipein)
else:
while True:
num1=str(2)
num2=str(1)
line=os.write(pipeout,num1.encode())
line=os.write(pipeout,num2.encode())
time.sleep(x)
parent()