当两个子进程从stdin读取时,我的程序没有响应

2024-09-28 03:22:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个C程序,在运行时需要一些控制信息。这些信息将由python程序传递。我先测试一下,效果很好。在

from subprocess import PIPE
import subprocess

cpro = ['./a_pass','2','8','7']        #2,8,7 are some parameters for init
p1 = subprocess.Popen(cpro,stdout=PIPE, stdin=PIPE)
#p2 = subprocess.Popen(cpro,stdout=PIPE, stdin=PIPE)

f1 = open('bdt.100','r')               #control information
commands = f1.read()

out1 = p1.communicate(commands)[0]     #get the c program output
#out2 = p2.communicate(commands)[0]

print out1
print '--------------'
#print out2

问题是当我打开评论的时候。我试图测试stdin中的这些信息是否可以通过两个进程读取。但是,我的python程序在执行时没有响应。它就挂在那里。我想原因是两个子进程为了读取stdin而斗争。我怎样才能控制他们和谐地工作呢?在

Bst致意。在

更新

我把我的代码改成这样,它就起作用了:

^{pr2}$

我想说些什么,但我能感觉到发生了什么。所以,我只是把如何在没有更多分析的情况下修复代码中的问题。原谅我。在


Tags: import程序信息stdinstdoutcommandsf1subprocess

热门问题