Collapse the table of content
Expand the table of content
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer


Flushes all streams; clears all buffers.

int _flushall( void );

Return Value

_flushall returns the number of open streams (input and output). There is no error return.


By default, the _flushall function writes to appropriate files the contents of all buffers associated with open output streams. All buffers associated with open input streams are cleared of their current contents. (These buffers are normally maintained by the operating system, which determines the optimal time to write the data automatically to disk: when a buffer is full, when a stream is closed, or when a program terminates normally without closing streams.)

If a read follows a call to _flushall, new data is read from the input files into the buffers. All streams remain open after the call to _flushall.

The commit-to-disk feature of the run-time library lets you ensure that critical data is written directly to disk rather than to the operating system buffers. Without rewriting an existing program, you can enable this feature by linking the program's object files with COMMODE.OBJ. In the resulting executable file, calls to _flushall write the contents of all buffers to disk. Only _flushall and fflush are affected by COMMODE.OBJ.

For information about controlling the commit-to-disk feature, see Stream I/O, fopen, and _fdopen.


Function Required header Compatibility
_flushall <stdio.h> Win 98, Win Me, Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.


All versions of the C run-time libraries.


// 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

See Also

Stream I/O Routines | _commit | fclose | fflush | _flushall | setvbuf | Run-Time Routines and .NET Framework Equivalents

© 2015 Microsoft