Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

C fopen() function with Examples

  • Last Updated : 04 Sep, 2021

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: 

Take a step-up from those "Hello World" programs. Learn to implement data structures like Heap, Stacks, Linked List and many more! Check out our Data Structures in C course to start learning today.
FILE *fopen(const char *file_name, const char *mode_of_operation);

Parameters: The method accepts two parameters of character type:  

  1. file_name: This is of C string type and accepts the name of the file that is needed to be opened.
  2. 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: 
    1. “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.
    2. “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).
    3. “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).
    4. “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.
    5. “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+.
    6. “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:  

  1. Basics of File Handling in C
  2. fopen() for an existing file in write mode
  3. EOF, getc() and feof() in C
  4. File opening modes(r versus r+)

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :