python for line in lines_Python C程序子进程挂起“for line in iter”
这是一个块缓冲问题.直接修复C程序中的stdout缓冲区基于stdio的程序作为规则是行缓冲的,如果它们在终端中以交互方式运行,并且当它们的stdout被重定向到管道时阻止缓冲.在后一种情况下,在缓冲区溢出或刷新之前,您将看不到新行.为了避免在每次printf()调用后调用fflush(),你可以通过在一开始调用C程序来强制行缓冲输出:setvbuf(stdout,(char*)NULL,_IOL