C fopen() function with Examples
Pre-requisite: Basics of File Handling in C
The fopen() method in C is a library function that is used to open a file to perform various operations which include reading, writing etc. along with various modes. If the file exists then the particular file is opened else a new file is created.
Syntax:
FILE *fopen(const char *file_name, const char *mode_of_operation);
Parameters: The method accepts two parameters of character type:
- file_name: This is of C string type and accepts the name of the file that is needed to be opened.
- mode_of_operation: This is also of C string type and refers to the mode of the file access. Below are the file access modes for C:
- “r” – Searches file. Opens the file for reading only. If the file is opened successfully fopen() loads it into memory and sets up a pointer which points to the first character in it. If the file cannot be opened fopen() returns NULL.
- “w” – Searches file. If the file exists already, its contents are overwritten. If the file doesn’t exist, a new file is created. Returns NULL, if unable to open the file. It creates a new file for writing only(no reading).
- “a” – Searches file. If the file is opened successfully fopen() loads it into memory and sets up a pointer that points to the last character in it. If the file doesn’t exist, a new file is created. Returns NULL, if unable to open the file. The file is opened only for appending(writing at end of file).
- “r+” – Searches file. Opens the file for both reading and writing. If opened successfully, fopen() loads it into memory and sets up a pointer which points to the first character in it. Returns NULL, if unable to open the file.
- “w+” – Searches file. If the file exists, its contents are overwritten. If the file doesn’t exist, a new file is created. Returns NULL, if unable to open the file. The difference between w and w+ is that we can also read the file created using w+.
- “a+” – Searches file. If the file is opened successfully fopen( ) loads it into memory and sets up a pointer which points to the last character in it. If the file doesn’t exist, a new file is created. Returns NULL, if unable to open the file. The file is opened for reading and appending(writing at end of file).
Return Value: The function is used to return a pointer to FILE if the execution succeeds else NULL is returned.
Example 1:
C
// C program to illustrate fopen() #include <stdio.h> #include <stdlib.h> int main() { // pointer demo to FILE FILE * demo; // Creates a file "demo_file" // with file access as write-plus mode demo = fopen ( "demo_file.txt" , "w+" ); // adds content to the file fprintf (demo, "%s %s %s" , "Welcome" , "to" , "GeeksforGeeks" ); // closes the file pointed by demo fclose (demo); return 0; } |
On running the following command, a new file will be created by the name “demo_file” and with the following content:
Welcome to GeeksforGeeks
Example 2: Now if we wish to look into the file then we need to run the following code, which will open the file and display its content.
C
// C program to illustrate fopen() #include <stdio.h> int main() { // pointer demo to FILE FILE * demo; int display; // Creates a file "demo_file" // with file access as read mode demo = fopen ( "demo_file.txt" , "r" ); // loop to extract every characters while (1) { // reading file display = fgetc (demo); // end of file indicator if ( feof (demo)) break ; // displaying every characters printf ( "%c" , display); } // closes the file pointed by demo fclose (demo); return 0; } |
Output:
Welcome to GeeksforGeeks
More articles on File Handling in C:
- Basics of File Handling in C
- fopen() for an existing file in write mode
- EOF, getc() and feof() in C
- File opening modes(r versus r+)
Please Login to comment...