如何使用Popen和管道从Python运行C程序,例如scanf()等待管道上的输入?

时间:2018-12-14 11:43:51

标签: python-3.x subprocess

  

如何使用Popen和管道从Python运行C程序,例如scanf()等待管道上的输入?

我想创建一个C程序子进程并使用管道以交互方式运行它:

proc = subprocess.Popen(['./echo'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
proc.stdin.write('Bob')

C程序:

puts("Enter your name:");
scanf("%s", &input);
printf(input)

现在,问题在于scanf()不等待我的输入,而是立即返回。无论使用shell=True还是不使用,都会发生这种情况。

如何使管道行为适当,例如scanf()等待用户输入吗?

0 个答案:

没有答案