hello i在“灰色”处理模块中有问题
我想与儿童进程互动(ex:儿童发育、辍学)。
这是儿童方案法典。
1 #include <stdio.h>
2
3 int main(){
4 char buf[1024];
5 printf("asdfsadfasff
");
6 scanf("%s",buf);
7 printf("%s
",buf);
8 }
该守则非常简单,印刷了插图、等待投入和印刷投入,以显示:
下面是《 p法》。
1 #!/usr/bin/python
2 from subprocess import *
3
4 fd = Popen(["./random"],stdin=PIPE,stdout=PIPE)
5 print "pid = %d"%(fd.pid) # print pid
6 result = ""
7 result = fd.stdout.read(-1) # read
8 print result
9 fd.stdin.write("write write write!!!
")
10 result = fd.stdout.read(-1)
11 print result
在这种情况下,我预计这一方案将很好地发挥作用,但第7行(fd.stdout.read(-1)被封锁,从来不工作。
我将职能部分改为职能部分(改为(-1),改为(1),改为(1024),但所有工作都不奏效。
但是,在先给予扼杀时,方案是行之有效的。
我认为,当方案结束时,儿童 st忙的缓冲未能补足...... 这只是我的意见。
这一问题是否有任何解决办法?
Edit1. when I execute program which is print string first, and wait user s input such as "sudo su" This worked well that I expected
我无法理解为什么这一案件运作良好。
1 from subprocess import *
2
3 fd = Popen(["sudo","su"],stdin=PIPE,stdout=PIPE)
4
5 print fd.stdout.read(-1)
6 print fd.stdin.write("asdfasdfas
")