我很想知道当程序退出时 printf()
函数的刷新是如何工作的。
让我们看下面的代码:
int main(int ac, char **av)
{
printf("Hi");
return 0;
}
在这种情况下,printf()
如何设法将其缓冲区刷新到 stdout
?
我想这与平台有关,所以让我们以 Linux 为例。
它可以使用 gcc
的 __attribute__((dtor))
来实现,但是标准库将依赖于编译器。我认为这不是它的工作方式。
感谢任何解释或文档链接。谢谢。
最佳答案
C 运行时将注册 atexit()
处理程序以在调用 exit()
时刷新标准缓冲区。
查看此 explanation .
关于c - printf 在程序退出时刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17230411/