如何使用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()
等待用户输入吗?