今天,我了解到,将stdout设置为terminal并在不同情况下对其进行缓冲时,它是行缓冲的。因此,在正常情况下,如果我使用printf()而不以“\n”结尾,则仅在缓冲区已满时才将其打印在屏幕上。如何获得此缓冲区的大小,这有多大?

最佳答案

实际大小由各个实现定义;该标准并没有规定最小大小(无论如何,基于我所能找到的大小)。没有关于如何确定缓冲区大小的线索。

编辑

Chapter and verse:



重点已添加。

“实现定义的”不是对“我不知道”的委婉说法,它仅是语言标准明确地将其留给实现来定义行为的声明。

话虽这么说,但是有一种非编程的方法可以找出答案。请查阅您的编译器的文档。 “实现定义的”还意味着该实现必须记录该行为:

关于c - 在C语言中,stdout缓冲区的大小是多少?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10904067/

10-14 14:18
查看更多