execl&printf - 订单

1 c execl

我有一个小问题:

{
  printf ("abc");
  execl("./prog","prog",NULL);
}
Run Code Online (Sandbox Code Playgroud)

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

dbu*_*ush 6

printf实际上并第一次运行,但是它的输出缓冲.

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

 printf("abc\n");
Run Code Online (Sandbox Code Playgroud)

要么:

printf("abc");
fflush(stdout);
Run Code Online (Sandbox Code Playgroud)