1

我对此有一个小问题:

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

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

4

1 回答 1

6

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

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

 printf("abc\n");

或者:

printf("abc");
fflush(stdout);
于 2016-05-28T15:40:35.287 回答