Sunday, February 1, 2009

File Handling in c


A file is a collection of bytes stored on a secondary storage device, which is generally a disk of some kind. The collection of bytes may be interpreted, for example, as characetrs, words, lines, paragraphs and pages from a textual document; fields and records belonging to a database; or pixels from a graphical image. There are two kinds of files that programmers deal with text files and binary files.

Text Files

A text file can be a stream of characters that a computer can process sequentially. It is not only processed sequentially but only in forward direction. For this reason a text file is usually opened for only one kind of operation (reading, writing, or appending) at any given time.
Binary Files
A binary file is no different to a text file. It is a collection of bytes. In C Programming Language a byte and a character are equivalent. No special processing of the data occurs and each byte of data is transferred to or from the disk unprocessed. C Programming Language places no constructs on the file, and it may be read from, or written to, in any manner chosen by the programmer.

Opening a file:
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. fopen() contain the file name and mode (the purpose of opening the file).

r is used to open the file for read only.
w is used to open the file for writing only.
a is used to open the file for appending data to it.

Closing a File

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. The input output library supports the function to close a file.

Syntax to close file

fclose(filepointer);


Example
#include
void main(void)
{
FILE *myfile;
char c;
myfile = fopen("firstfile.txt", "r");
if (myfile == NULL) printf("File doesn't exist\n");
else {
do {
c = getc(myfile);

putchar(c);

} while (c != EOF);

}
fclose(myfile);

}


File operation functions in C:

Function Name
Operation
fopen()
Creates a new file. Opens an existing file.
fclose
Closes a file which has been opened for use
getc()
Reads a character from a file
putc()
Writes a character to a file
fprintf()
Writes a set of data values to a file
fscanf()
Reads a set of data values from a file
getw()
Reads a integer from a file
putw()
Writes an integer to the file
fseek()
Sets the position to a desired point in the file
ftell()
Gives the current position in the file
rewind()
Sets the position to the beginning of the file

For More Tutorials c tutorial


11 Comments:

sankar said...

Can u tell ,getting a line from another text file, plzzz send code to sreenusiva@gmail.com

Anonymous said...

I have one question.
When we write code and execute it then where stored this file by default?

Ali shah said...

where code is placed in bin directory

Ali shah said...

plz upload a simple code to open a file in write mode

Anonymous said...

What will be stored in file pointer fp, if we difine like
FILE *fp;
fp=fopen("readme.txt","r");

Samba said...

FILE *fp;
fp=fopen("readme.txt","r");

what fp contains..

sabershark said...

fp contains the location of the file readme.txt because fp is a file pointer.A file pointer does not represent the file name or data in the file,just address of the file.

Anonymous said...

Hi!
What if i save a file with the extension as .ah instead of .txt? Is it bettter?
Please answer asap1

Harpreet Singh said...

oooooooo kya chakr aa ehhh....

Ehsan Elahi said...

What fseek() function actially do? Why we use it ??

sanjay varma said...

Appreciation for nice Updates, I found something new and folks can get useful info about BEST ONLINE TRAINING