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
What is use of #include in c?
What is difference between %d and %i in c?
Explain how do you print an address?
How is pointer initialized in c?
Topics: Structures, Arrays, Searching and Sorting Assume there is a small mobile computer device including a hard disk and a slot for a memory card. The device shall be used to backup photos e.g. during holiday. Every time a memory card is connected all photos of the card are copied into a new folder automatically. And your task is to develop some basic controlling software to show, add, remove, search and sort the directories of photos. Step by Step Implementation 1.Define two symbolic constants, one to hold the total volume of the disk (e.g. VOLUME) and another one to hold the number of entries the files system of the device can handle (MAXFOLD). 2.Define a new structure data type named DATE to store a date consisting of year, month and day as unsigned values. 3.Define an other structure data type FOLDER to store the information of one folder of photos: ◦A title as character array of appropriate length ◦The location (event) the photos are taken as character array of appropriate length ◦The date of the day the photos are copied to the disk using the just defined data type DATE ◦The number of photos as natural number ◦And the size of the folder in MB as floating point value 4.Define the following global variables and initialise them: ◦disk as an array with MAXFOLD elements of data type FOLDER ◦folders as natural value to count the number of folders currently stored at the disk (valid elements in the array) TEST: Now you should be able to compile the code the first time without any warning or error. In the menu only "p" to print and "q" to quit will work!. 5.Now complete the functions given by their prototype: float freeSpace ();The function has to calculate the sum of the size component of all elements currently stored in the disk array. The function shall return the free space of the disk by the difference between the available total volume and the calculated sum. TEST: To test this function you only need to uncomment printing the "statusline" at the function actionmenu(). Compare the calculated value with a manual calculation of the example values given above. unsigned isBefore (DATE, DATE);The function checks if one date is before the other. There are 3 different possibilities which have to be handled. Imagine for example these 3 different combinations of values: ◦2010-01-01 : 2010-01-02 ◦2010-01-01 : 2010-02-01 ◦2010-01-01 : 2009-01-01 The function shall just return the result of the comparison. unsigned isEqual (DATE, DATE);The function checks if one date is equal to the other, all components have to be compared. The function shall just return the result of the comparison. int findByDate (DATE);As the array is should be kept in order (sorted by date) implement a binary search for a folder by its date here. You need only to adapt the binary search we used in the exercise. Use the 2 comparing functions above where appropriate. The function shall return the index of the element which was found or -1. TEST: Now you can try searching a folder by date via the "s" in the menu. Activate the corresponding part in the main function. int isSpaceLeft (FOLDER);This function compares the free space of the disk with the size of folder given with the parameter list. The function shall return 1 if there is enough space to add the folder, otherwise 0 (just the result of the comparison). void SortByDate ();This function shall implement the InsertionSort using the component date as key. Use the provided algorithm/souce code of the exercise as template. If you need a comparison between dates, use the function isBefore you have written again. void addFolder (FOLDER);The function has to check if the disk has additional capacities to add the new folder (number of folders and space left). If at least one of these conditions is false print an error message and return -1. Else there has to be added an other test to avoid 2 folder elements with the same date (use the findByDate function here. If there is no folder with the new date simply attach the new folder at the end of the array and call the sorting algorithm afterwards to keep the order in the array. TEST: Now you can try to add a folder via the "a" in the menu. Activate the corresponding part in the main function. void delDir (int);This function removes one element of the disk array. The input parameter contains the index of the element to delete. Deletion can simply be done by moving all elements at the right one to the left (overwriting the element to delete. The function may get a -1. This has to be checked first (certainly there is nothing to delete then!) Don't forget to decrement the counter of elements at the end. TEST: Now you can try to remove a folder by date via the "r" in the menu. Activate the corresponding part in the main function. unsigned findAllOfLocation(char[], FOLDER[]);This is an optional additional task: The function shall find all elements with the given value for the component location (first input parameter). The array elements which are found have to be added to the FOLDER array (second input parameter). As this parameter is an array we can use the result later in the main function. There kernel of function implements a modified linear search on the disk array (it does not stop if one element is found bat continues search until the location of all elements is checked). The finally function shall return the number of elements found in the disk array. TEST: Now you can try to add a folder by date via the "l" in the menu. Activate the corresponding part in the main function.
What is wrong with this program statement?
Explain how many levels deep can include files be nested?
How to set file pointer to beginning c?
How do you convert strings to numbers in C?
Is that possible to add pointers to each other?
Please send me WIPRO technical question to my mail ID.. its nisha_g28@yahoo.com please its urgent
Hai sir, I had planned to write the NIC scientific engineer exam , plz post the sample question......
What is structure pointer in c?
Some coders debug their programs by placing comment symbols on some codes instead of deleting it. How does this aid in debugging?
How can you call a function, given its name as a string?