popen为啥在命令执行完后才能得到输出,能不能用行缓存

popen为什么在命令执行完后才能得到输出,能不能用行缓存popen为什么在命令执行完后才能得到输出,能不能用

popen为什么在命令执行完后才能得到输出,能不能用行缓存
popen为什么在命令执行完后才能得到输出,能不能用行缓存
int i = 0;
for (i = 0; i < 10; i++) 
  printf("hello\n");
  sleep(1);
}
只有循环10次才输出10个hello,即程序已经退出了。 而不是每一秒输出一个hello,一次性输出10个
[解决办法]
 printf("hello\n");
改为
 printf("hello\n");fflush(stdout);
试试看。