C – File Handling
What is file?
File is a collection of bytes that is stored on secondary storage devices like disk. There are two kinds of files in a system. They are,
- Text files (ASCII)
- Binary files
- Text files contain ASCII codes of digits, alphabetic and symbols.
- Binary file contains collection of bytes (0’s and 1’s). Binary files are compiled version of text files.
Basic file operations in C programming:
There are 4 basic operations that can be performed on any files in C programming language. They are,
- Opening/Creating a file
- Closing a file
- Reading a file
- Writing in a file
Let us see the syntax for each of the above operations in a table:
File operation | Declaration & Description |
fopen() – To open a file | Declaration: FILE *fopen (const char *filename, const char *mode) fopen() function is used to open a file to perform operations such as reading, writing etc. In a C program, we declare a file pointer and use fopen() as below. fopen() function creates a new file if the mentioned file name does not exist. FILE *fp; fp=fopen (“filename”, ”‘mode”); Where, fp – file pointer to the data type “FILE”. filename – the actual file name with full path of the file. mode – refers to the operation that will be performed on the file. Example: r, w, a, r+, w+ and a+. Please refer below the description for these mode of operations. |
fclose() – To close a file | Declaration: int fclose(FILE *fp); fclose() function closes the file that is being pointed by file pointer fp. In a C program, we close a file as below. fclose (fp); |
fgets() – To read a file | Declaration: char *fgets(char *string, int n, FILE *fp) fgets function is used to read a file line by line. In a C program, we use fgets function as below. fgets (buffer, size, fp); where, buffer – buffer to put the data in. size – size of the buffer fp – file pointer |
fprintf() – To write into a file | Declaration: int fprintf(FILE *fp, const char *format, …);fprintf() function writes string into a file pointed by fp. In a C program, we write string into a file as below. fprintf (fp, “some data”); or fprintf (fp, “text %d”, variable_name); |
Mode of operations performed on a file in C language:
There are many modes in opening a file. Based on the mode of file, it can be opened for reading or writing or appending the texts. They are listed below.
- r – Opens a file in read mode and sets pointer to the first character in the file. It returns null if file does not exist.
- w – Opens a file in write mode. It returns null if file could not be opened. If file exists, data are overwritten.
- a – Opens a file in append mode. It returns null if file couldn’t be opened.
- r+ – Opens a file for read and write mode and sets pointer to the first character in the file.
- w+ – opens a file for read and write mode and sets pointer to the first character in the file.
- a+ – Opens a file for read and write mode and sets pointer to the first character in the file. But, it can’t modify existing contents.
1. Example program for file open, file write and file close in C language: