fopen : <stdio.h> library function

The function FILE *fopen(const char *filename, const char *mode); opens the file whose name is given in the filename argument and associate it with a stream and return a FILE pointer to be used in any future I/O operations on this stream. The fopen function opens a stream in a particular mode, which defines the operations that are allowed on the stream.

Various modes for opening a stream

Mode Description
"r" To read a file. Opens a file for reading. The file must exist.
"w" To write on a file. Creates an empty file for writing. If a file already exists with same name, its content is removed and the file is considered as a new empty file.
"a" To append data at the end of file. The file is created if it does not exist.
"r+" To read and write on an existing file. Opens a file to update both reading and writing. The file must exist.
"w+" To create a new file for reading and writing.
"a+" To read and append data on a file.

Function prototype of fopen

FILE *fopen(const char *filename, const char *mode);
  • filename : This is a null-terminated string containing the name of the file to be opened.
  • mode : This is a null-terminated string containing a file access mode.

Return value of fopen

On success, this function returns a FILE pointer. Otherwise, NULL is returned and the global variable errno is set to indicate the error.

C program to show the use of fopen function

The following program shows the use of fopen function to open a text file in read mode.

#include <stdio.h>

int main(){
   FILE *file;
   int ch;
   
   /* Open a file for reading */
   file = fopen("textFile.txt","r");
   if(file == NULL){
      perror("Error: Unable to open a file");
   } else {
       while(!feof(file)){
          ch = fgetc(file);
          printf("%c", ch);
       }
       fclose(file);
   }
   
   return(0);
}

Program Output
fopen C Standard library function