c - printf 在程序退出时刷新

标签 c linux printf

我很想知道当程序退出时 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/

相关文章:

c - 如何在不指定 -O1 的情况下获得 gcc -O1 优化

linux - 在远程服务器 linux 上复制/移动文件

ruby - GTK - 不要在选择/悬停时突出显示按钮

c - 结构数组 - 删除/添加元素和打印

c - 查找和替换方法结束括号

c - TCP套接字服务器

c - -mini-xml 中未找到 lmxml 库?

linux - 在 Ubuntu 中执行 START-DFS.SH 时权限被拒绝

c - 为什么没有打印任何内容? C语言编程

c# - C#中的printf是什么