File Handling in C Programming | C Programming

File Handling in C Programming | C Programming Language

    C supports a number of functions that have the ability to perform basic file operations, which include:   
1. Naming a file   
2. Opening a file   
3. Reading from a file   
4. Writing data into a file   
5. Closing a file   

File Operations functions in C  

             
File Handling in C

Defining and opening a file     

If we want to store data in a file into the secondary memory, we must specify certain things about the  file to the operating system. They include the filename, data structure, purpose.   
The general format of the function used for opening a file is     
FILE *fp; 
fp=fopen(“filename”,”mode”);   

The first statement declares the variable fp as a pointer to the data type FILE. As stated earlier, File is a  structure that is defined in the I/O Library. The second statement opens the file named filename and  assigns an identifier to the FILE type pointer fp. This pointer, which contains all the information about  the file, is subsequently used as a communication link between the system and the program. The second statement also specifies the purpose of opening the file. The mode does this job.           

w      open for writing (file need not exist)         
a       open for appending (file need not exist)         
r+     open for reading and writing, start at beginning         
w+    open for reading and writing (overwrite file)         
a+     open for reading and writing (append if file exists) 


Consider the following statements:       

FILE *p1, *p2;     
p1=fopen(“data”,”r”);     
p2=fopen(“results”,”w”); 

In these statements the p1 and p2 are created and assigned to open the files data and results respectively  the file data is opened for reading and result is opened for writing. In case the results file already exists,  its contents are deleted and the files are opened as a new file. If data file does not exist error will occur.     

Closing a file    

The input output library supports the function to close a file; it is in the following format.       fclose(file_pointer);     A file must be closed as soon as all operations on it have been completed. This would close the file  associated with the file pointer.     
Observe the following program.   
….   
FILE *p1 *p2;   
p1=fopen (“Input”,”w”);   
p2=fopen (“Output”,”r”);   
….   
…   
fclose(p1);   
fclose(p2)   

The above program opens two files and closes them after all operations on them are completed, once a  file is closed its file pointer can be reversed on other file.   

The getc and putc functions are analogous to getchar and putchar functions and handle one character at  a time. The putc function writes the character contained in character variable c to the file associated  with the pointer fp1. ex putc(c,fp1); similarly getc function is used to read a character from a file that  has been open in read mode. c=getc(fp2).   

The program shown below displays use of a file operations. The data enter through the keyboard and  the program writes it. Character by character, to the file input. The end of the data is indicated by  entering an EOF character, which is control-z. the file input is closed at this signal.     


The getw and putw functions     

These are integer-oriented functions. They are similar to get c and putc functions and are used to read  and write integer values. These functions would be usefull when we deal with only integer data. The  general forms of getw and putw are:       
putw(integer,fp);   
getw(fp);     


The fprintf & fscanf functions    

The fprintf and scanf functions are identical to printf and scanf functions except that they work on files. The first argument of these functions is a file pointer which specifies the file to be used. The general form of fprintf is             

fprintf(fp,”control string”, list);   

Where fp id a file pointer associated with a file that has been opened for writing. The control string is  file output specifications list may include variable, constant and string.               

fprintf(f1,%s%d%f”,name,age,7.5);   

Here name is an array variable of type char and age is an int variable. The general format of fscanf is               
fscanf(fp,”controlstring”,list);   
This statement would cause the reading of items in the control string.     
Example             
fscanf(f2,”5s%d”,item,&quantity”);   
Like scanf, fscanf also returns the number of items that are successfully read.   

Post a Comment

0 Comments