在C. printf 使用缓冲输出。当stdout到达终端时,缓冲区在每个之后被刷新 "\n" ,但在这种情况下,输出是一个管道,因此它被缓冲到几个k字节的数据。缓冲区永远不会刷新,也不会写入管道。
printf
"\n"
为了避免python永远等待缓冲数据,您可以添加 fflush(stdout) 每次之后 printf 要么 完全禁用缓冲 。
fflush(stdout)