Format
#include <stdio.h> int _flushall(void);
Language Level: Extension
_flushall causes the system to write to file the contents of all
buffers associated with open output streams (including stdout and
stderr). It clears all buffers associated with open input streams
of their current contents. The next read operation, if there is
one, reads new data from the input files into the buffers. All
streams remain open after the call.
For portability, use the ANSI/ISO function fflush instead of _flushall.
Return Value
_flushall returns the number of open streams of input
and output. If an error occurs, _flushall returns EOF.
Example
In this example, _flushall completes any pending input
or output on all streams by flushing all buffers.
#include <stdio.h>
int main(void)
{
int i,numflushed;
char buffer1[5] = { 1,2,3,4 };
char buffer2[5] = { 5,6,7,8 };
char *file1 = "file1.dat";
char *file2 = "file2.dat";
FILE *stream1,*stream2;
stream1 = fopen(file1, "a+");
stream2 = fopen(file2, "a+");
for (i = 0; i <= sizeof(buffer1); i++) {
fputc(buffer1[i], stream1);
fputc(buffer2[i], stream2);
}
numflushed = _flushall(); /* all streams flushed */
printf("Number of files flushed = %d\n", numflushed);
fclose(stream1);
fclose(stream2);
return 0;
/********************************************************************
The output should be:
Number of files flushed = 5 ********************************************************************/ }
![]()
close -- Close File Associated with Handle
fclose -- Close Stream
fflush -- Write Buffer to File
<stdio.h>