【发布时间】:2021-01-08 03:10:01
【问题描述】:
我使用 Python subprocess fork 一个 C 应用程序并打开一个到 stdout 的管道。
app = subprocess.Popen(args, stdout=subprocess.PIPE)
应用程序向stdout 写入几行,如下所示:
printf("Line 0\n");
printf("Line 1\n");
printf("Line 2\n");
我尝试在应用程序退出之前在我的 Python 脚本中读取这些行:
line = app.stdout.readline()
然而,readline 会无限期地阻塞而不返回任何内容,即使我希望在对readline 的三个单独调用中读取Line 0、Line 1 和Line 2。我注意到当应用程序最终退出时,readline 返回预期的内容。但是,我希望readline 在传递给printf 后立即返回预期的内容。发生了什么?
【问题讨论】:
标签: python subprocess printf stdout