_flushall
刷新所有流;清除所有缓冲区。
语法
int _flushall( void );
返回值
_flushall
返回打开的流(输入和输出)的数量。 无错误返回。
备注
默认情况下,_flushall
函数会向相应的文件中写入与打开的输出流关联所有缓冲区的内容。 与打开的输入流关联的所有缓冲区的当前内容将被清除。 (这些缓冲区通常由操作系统维护,操作系统确定将数据自动写入磁盘的最佳时间:当缓冲区已满时、当流已关闭时或当程序在未关闭流的情况下正常终止时。)
如果在调用 _flushall
后进行读取,则会将输入文件中的新数据读取到缓冲区中。 在调用 _flushall
后,所有流将保持打开状态。
利用运行库的提交到磁盘功能,您可以确保将关键数据直接写入磁盘而不是操作系统的缓冲区。 无需重写现有程序,可以通过将程序的对象文件与 Commode.obj 链接来启用此功能。在生成的可执行文件中,调用 _flushall
会将所有缓冲区的内容写入磁盘中。 仅 _flushall
和 fflush
受 Commode.obj 的影响。
有关控制提交到磁盘功能的信息,请参阅流 I/O、fopen
和 _fdopen
。
默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态。
要求
函数 | 必需的标头 |
---|---|
_flushall |
<stdio.h> |
有关兼容性的详细信息,请参阅 兼容性。
示例
// crt_flushall.c
// This program uses _flushall
// to flush all open buffers.
#include <stdio.h>
int main( void )
{
int numflushed;
numflushed = _flushall();
printf( "There were %d streams flushed\n", numflushed );
}
There were 3 streams flushed