【发布时间】:2013-04-09 15:20:16
【问题描述】:
我有这个代码
p.stdin.write('alloc ' + str(size) + '\n' + chr(0x1a))
p.stdin.flush()
stdout = p.stdout.readline()
问题是脚本一直挂在 readline()
如果我替换
p.stdin.flush()
与
p.stdin.close()
它可以工作,但不允许我在之后继续与进程通信
我应该怎么做才能将数据发送到标准输入并从标准输出读取回复并且仍然能够在脚本期间重复该操作?
【问题讨论】:
-
子进程可能正在使用缓冲输出,除非你告诉我们它是什么,否则我们不能说是否有办法让它不缓冲。
-
Python 2 还是 Python 3?
-
这是一个简单的c程序读取fgets(line, MAX_LINE_LENGTH, stdin);
-
chr(0x1a)在这里的作用是什么? -
子进程正在使用 fprintf(stdout, "%d\n", my_alloc(data));
标签: python subprocess stdin