12.20.2冲洗缓冲器
冲洗缓冲流上的输出意味着传输所有文件的累积字符数。在很多情况下流上的缓冲输出会自动刷新:
- 当您尝试进行输出时,输出缓冲区已满。
- 当溪流关闭时。请参见关闭流.
- 当程序通过调用终止时
出口
.请参见正常终止. - 写入换行符时,如果流是行缓冲的。
- 每当输入操作打开时任何流实际读取数据从其文件中。
如果要在其他时间刷新缓冲输出,请调用刷新缓冲区
,在头文件中声明标准件。小时.
- 功能:整数 刷新缓冲区 (文件*流动)¶
-
初步:|MT-安全|AS不安全损坏|AC-Unsafe锁损坏|请参见POSIX安全概念.
此函数会导致上的任何缓冲输出流动待交付到文件。如果流动是空指针,则刷新缓冲区
导致缓冲输出打开全部的开放输出流待冲洗。
此函数返回电动势
如果发生写入错误,或为零否则。
- 功能:整数 fflush_unlocked(解锁) (文件*流动)¶
-
初步:|MT-安全竞赛:流|AS-不安全损坏|AC-Unsafe损坏|请参见POSIX安全概念.
这个fflush_unlocked(解锁)
函数等价于刷新缓冲区
函数,但它不隐式锁定流。
这个刷新缓冲区
函数可用于刷新当前的所有流打开。虽然这在某些情况下很有用,但它通常比因为在终端输入为并且程序希望确保所有输出在终端。但这意味着只有行缓冲流必须冲洗。Solaris专门为此引入了一个功能。是的在GNU C库中总是以某种形式提供,但从未正式提供已导出。
- 功能:空隙 _冲洗 (无效)¶
-
初步:|MT-安全|AS-不安全损坏|AC-Unsafe锁损坏|请参见POSIX安全概念.
这个_冲洗
函数刷新所有缓存线流当前已打开。
此函数在标准文本.h收割台。
兼容性说明:一些大脑受损的操作系统众所周知,它非常专注于面向线的输入和输出刷新行缓冲流会导致写入换行!幸运的是,这个“功能”似乎越来越不常见了。你知道的使用GNU C库不需要担心这一点。
在某些情况下,不刷新挂起的输出可能很有用如果传输成本很高输出不再需要,这是有效的推理。在这个设置Solaris中引入的非标准函数,该函数在中可用可以使用GNU C库。
- 功能:空隙 __fppurge(刷新) (文件*流动)¶
-
初步:|MT-安全竞赛:流|AS-不安全损坏|AC-Unsafe损坏|请参见POSIX安全概念.
这个__fppurge(刷新)
函数导致流的缓冲区流动被清空。如果流当前处于读取模式,则所有缓冲器中的输入丢失。如果流处于输出模式,则缓冲输出未写入设备(或其他任何设备底层存储),并清除缓冲区。
此函数在中声明标准文本.h.