In C, fopen() is used to open a file in different modes. To open a file in write mode, “w” is specified. When mode “w” is specified, it creates an empty file for output operations.
What if the file already exists?
If a file with the same name already exists, its contents are discarded and the file is treated as a new empty file. For example, in the following program, if “test.txt” already exists, its contents are removed and “GeeksforGeeks” is written to it.
The above behavior may lead to unexpected results. If programmer’s intention was to create a new file and a file with same name already exists, the existing file’s contents are overwritten.
The latest C standard C11 provides a new mode “x” which is exclusive create-and-open mode. Mode “x” can be used with any “w” specifier, like “wx”, “wbx”. When x is used with w, fopen() returns NULL if file already exists or could not open. Following is modified C11 program that doesn’t overwrite an existing file.
This article is compiled by Abhay Rathi. Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- How to write your own header file in C?
- Read/Write structure to a file in C
- lseek() in C/C++ to read the alternate nth byte and write it in another file
- Write a C program that displays contents of a given file like 'more' utility in Linux
- C fopen() function with Examples
- C program to check whether the file is JPEG file or not
- C program to copy contents of one file to another file
- Write a C program that won't compile in C++
- When should we write our own assignment operator in C++?
- When should we write our own copy constructor?
- Write your own memcpy() and memmove()
- Write a program that produces different results in C and C++
- Write a C macro PRINT(x) which prints x
- How to write a running C code without main()?
- C program to write an image in PGM format
- Write your own strlen() for a long string padded with '\0's
- How to write long strings in Multi-lines C/C++?
- Write a C program that does not terminate when Ctrl+C is pressed
- Does C++ compiler create default constructor when we write our own?
- Write one line functions for strcat() and strcmp()