C++ remove()

The remove() function in C++ deletes a specified file. It is defined in the cstdio header file.

Example

#include <iostream>
#include <cstdio>
using namespace std;

int main() {
  char filename[] = "program.cpp";

// remove the file "program.cpp" int result = remove(filename);
cout << result; return 0; } // Output: -1

remove() Syntax

The syntax of the remove() function is:

remove(const char* filename);

remove() Parameters

The remove() function takes the following parameter:

  • filename - pointer to the C-string containing the name of the file along with the path to delete

Note: Variables of the C++ string class cannot be used as parameters for remove().


remove() Return Value

The remove() function returns:

  • zero if the file is successfully deleted
  • non-zero if error occurs in deletion process

remove() Prototype

The prototype of remove() as defined in the cstdio header file is:

int remove(const char* filename);

Delete Opened Files with remove()

In case the file to be deleted is opened by a process, the behaviour of remove() function is implementation-defined:

  • POSIX systems - If the name was the last link to a file, but any processes still have the file open, the file will remain in existence until the last running process closes the file.
  • Windows - The file won't be allowed to be deleted if it remains open by any process.

Example: C++ remove()

#include <iostream>
#include <cstdio>

using namespace std;

int main() {
  char filename[] = "C:\\Users\\file.txt";
	
// deletes the file if it exists int result = remove(filename);
// check if file has been deleted successfully if (result != 0) { // print error message cerr << "File deletion failed"; } else { cout << "File deleted successfully"; } return 0; }

Output

File deletion failed