概述
我有两个并行运行的程序.
我想将一个程序的输出流重定向到其他程序的输入流.
我试过管道,但似乎第一个程序的输出仅在第一个程序终止时被重定向到第二个程序的输入.
但是,我的要求并非如此.
例如,第一个程序是print.c,如下所示:
int main(){
int t=1;
while(t!=0){
printf("%d",t);
scanf("%d",&t);
}
}
第二个程序是inputP.py,如下:
#!/usr/bin/python
t=1
while t!=0:
f = open('outP.txt','a')
t = int(raw_input())
f.write(str(t))
f.close()
我的要求是第二个程序应该在打印一个数字时读取第一个程序的输出,并且两个程序都不会终止.
我怎样才能实现这一目标?
最佳答案 这是因为UNIX在检测到它是管道时缓冲了stdin.真正发生的是第一个程序的输出存储在一个缓冲区中,直到它达到一定的大小或直到程序终止(以先发生者为准 – 它是一个非常大的缓冲区,所以你先达到第二个条件),一旦缓冲区被视为已满,它将作为输入发送到第二个程序.
所以看起来你希望你的第二个(Python)程序的输入只是行缓冲(如果你以交互方式运行程序,它的stdin是tty而不是管道就会发生).
最后
以上就是发嗲含羞草为你收集整理的python读取输入流_python – 将一个正在运行的程序的输出流传输到其他正在运行的程序的输入流...的全部内容,希望文章能够帮你解决python读取输入流_python – 将一个正在运行的程序的输出流传输到其他正在运行的程序的输入流...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复