# std::remove

From cppreference.com
< cpp‎ | io‎ | c

Defined in header `<cstdio>` |  |
int remove( const char* fname ); |  |

Deletes the file identified by character string pointed to by `fname`.

If the file is currently open by the current or another process, the behavior of this function is implementation-defined (in particular, POSIX systems unlink the file name, although the file system space is not reclaimed even if this was the last hardlink to the file until the last running process closes the file, Windows does not allow the file to be deleted)

### Parameters

fname | - | pointer to a null-terminated string containing the path identifying the file to delete

### Return value

​0​ upon success or non-zero value on error.

### Notes

POSIX specifies many additional details for the behavior of this function.

The standard library also defines a function template `std::remove` taking a pair of iterators and a value, this overload is one of the standard algorithms.

### Example

Run this code

    #include <iostream>
    #include <fstream>
    #include <cstdio>
    int main()
    {
        bool ok = static_cast<bool>(std::ofstream("file1.txt").put('a')); // create file
        if(!ok) { std::perror("Error creating file1.txt"); return 1; }
        std::cout << std::ifstream("file1.txt").rdbuf() << '\n'; // print file

        std::remove("file1.txt"); // delete file

        bool failed = !std::ifstream("file1.txt");
        if(failed) { std::perror("Error opening deleted file"); return 1; }
    }

Possible output:

    a
    Error opening deleted file: No such file or directory

### See also

removeremove_all (C++17)(C++17) | removes a file or empty directory removes a file or directory and all its contents, recursively (function)
rename | renames a file (function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/io/c/remove&oldid=85911"