Answer Posted / chauhan rakesh botad
The flushall function flushes all streams.
flushall clears all buffers associated with open input
streams and writes all buffers associated with open output
streams to their respective files. Any read operation
following flushall reads new data into the buffers from the
input files. Streams stay open after flushall executes.
Return Value
flushall returns an integer the number of open input and
output streams.
This is used to clear the buffer memory...for eg.we use
flush(stdin) before the getch() command and scanf command so
as to clear the memory space...sometimes it happens that
getch() takes 'enter' as a character ...to avoid this we use
the flush functions.
flushall clear any data in stream. it doesnt mean data gets
lost, instead all buffered data process and sent to target
output source.
like writing to a file using filestread and if we have write
some data in stream which is in buffer but not written in
file. as you call flushall it will write all data to file
and then clear the buffer(i.e memory space).
The fflush() and flushall() functions in the C run-time
library do not write file changes directly to disk. These
functions flush the file buffers provided by the library;
they do not flush the buffers the MS-DOS, OS/2, or Windows
NT operating systems provide at the system level. For
example, if an application calls fflush() but MS-DOS does
not write its buffers to disk before a system crash (or
equivalent event), information may still be lost. To address
this situation in MS-DOS, use the _commit() function after
you call fflush() or fflushall(). Calling _commit() causes
the operating system to flush to disk the buffer associated
with a file handle.
The OS/2 operating system provides two separate functions,
depending on the installed version of OS/2. In 16-bit OS/2
(versions 1.x), use the DosBufReset() function. In 32-bit
OS/2 (version 2.0), use the DosResetBuffer() function.
The Windows NT operating system provides the WIN32 API
FlushFileBuffers(). The _commit() function included with the
Visual C++ 32-bit Edition CRT calls FlushFileBuffers to
write buffered data to disk.
Microsoft C/C++ version 7.0 introduces the "c" mode option
for the fopen() function. When an application opens a file
and specifies the "c" mode, the run-time library writes the
contents of the file buffer to disk when the application
calls the fflush() or _flushall() function. The "c" mode
option is a Microsoft extension and is not part of the ANSI
standard for fopen().
To change the default behavior of the fflush() and
_flushall() functions, link your application with the
COMMODE.OBJ file provided by the products listed at the
beginning of this article. COMMODE.OBJ changes the global
commit flag such that calling fflush() or _flushall()
commits the file buffer to disk. This flag tells fflush() to
call _commit() to flush the low- level file when the stream
is flushed and _commit() in turn calls _dos_commit() for the
MS-DOS level file. By default flushing a stream does not
flush the low-level and MS-DOS level files.
Is This Answer Correct ? | 19 Yes | 1 No |
Post New Answer View All Answers
When should the const modifier be used?
How can I manipulate individual bits?
In c language can we compile a program without main() function?
Explain what standard functions are available to manipulate strings?
Why pointers are used?
What language is c written?
what value is returned to operating system after program execution?
Input is "rama loves rajesh and rajesh Loves rama also and rajesh wear gloves and bloves" To print output is count the numbers of times repeted the word love without case sensitive.
Write program to remove duplicate in an array?
What is omp_num_threads?
write a program to rearrange the array such way that all even elements should come first and next come odd
Explain what is the most efficient way to store flag values?
How can I copy just a portion of a string?
I need previous papers of CSC.......plz help out by posting them.......
What is the difference between if else and switchstatement