execl& printf - 订单

时间:2016-05-28 15:35:31

标签: c execl

我遇到一个小问题:

{
  printf ("abc");
  execl("./prog","prog",NULL);
}

一切正常,但为什么execl只在printf之前运行?有人能帮助我吗?

1 个答案:

答案 0 :(得分:6)

printf实际上先运行,但它的输出是缓冲的。

您可以通过在字符串末尾添加换行符(\n)或致电fflush(stdout)来刷新缓冲区:

 printf("abc\n");

或者:

printf("abc");
fflush(stdout);