File handling

1. What is a console?
Screen + keyboard

2. What is disk I/O?
Reading data from a Disk file is called as Disk Input
Writing data to a Disk file is called as Disk Output

3. What is the benefit of file handling (Disk I/O)?
i) To store results of a program permanently in a disk file.
ii) To store input for a program permanently in a disk file.
iii) Database applications ( dealing with records )

4. What is Binary mode file handling?
Some data of ‘n’ bytes on RAM would be stored as exactly ‘n’ bytes on a Disk.
Eg: a student object of 46 bytes on RAM would be stored as exactly 46 bytes on a Disk.

The advantage is: as no format conversion is required, so execution would be faster.

5. What is random file accessing & what is the perquisite for it and why?
The contents of a file can be accessed randomly by moving the file pointer to anywhere in a file.
Eg: fseek( fp, pos, SEEK_SET)

The prerequisite is it must be a binary mode file. (Otherwise behaves arbitrarily)

6. What happens when we open a file using fopen()?
Step1: Searches for the file
Step2: If file not found then NULL is returned.
If found:
Step3: A buffer is reserved to it on RAM
Step4: A structure object is created (fields are set to some values, where one of  the fields points to the buffer)
Step5: Returns the base address of the FILE object to FILE pointer.

7. Why should we close a file?
i)  To write the data in the buffer into the disk when programmer wants.
        ii) To reopen a file( particularly when each file operation is written as a separate function)
Eg : append(), read(), delete(), modify(), search() etc.

Even though we don’t close it, OS closes it at the end of the program.

8. What are the main areas where text and binary mode functions are different?
i)   Storage of primitive types (int, floats) & secondary types (student, employee, book)
ii)  Representation of end of file (No end of file character for binary mode).
iii) Handling of a new line character (One byte in binary mode where as two bytes in text mode )

9. Explain the arguments of fwrite()
fwrite( &s, sizeof(s), 1, fp );

Argument one: Base address of the object
Argument two: Size of the object
Argument three: Number of objects
Argument four: file pointer

10. What are the different file modes available?
Text mode:
Mode: Operations that can be performed
r reading only
w writing only
a appending only
r+ reading / writing
w+ reading/writing
a+ reading/ appending( writing at the end)

Similarly for Binary mode

11. What is end-of-file character?
A special character ( ASCII : 26 ) is inserted beyond the last character in a file, when it is created.

12. What are command line arguments?
The arguments which are passed to a program( main() ) from the command prompt are called as command line arguments.

13. What does argc, argv stands for and mean in the line: 
int main( int argc, char* argv[] )

Argument count                  Argument values
(contains the no. of arguments ( base addresses of each of the arguments(stings))
at the command prompt)

14.What does argv[0] contains?
The program’s executable file name