命名空间
变体
操作

std::remove

来自 cppreference.com
< cpp‎ | io‎ | c
 
 
 
 
定义在头文件 <cstdio>
int remove( const char* pathname );

删除由 pathname 指向的字符字符串标识的文件。

如果文件当前被任何进程打开,则此函数的行为是实现定义的。POSIX 系统会解除文件名的链接(目录项),但文件使用的文件系统空间在任何进程中打开且文件存在其他硬链接的情况下不会被回收。Windows 在此类情况下不允许删除文件。

内容

[编辑] 参数

pathname - 指向包含要删除文件的路径的以空字符结尾的字符串的指针

[编辑] 返回值

0 成功时,或错误时为非零值。

[编辑] 注意

POSIX 规定 了该函数行为的许多其他细节。

标准库还定义了一个函数模板 std::remove,它接受一对迭代器和一个值,此重载是标准 算法 之一。

[编辑] 示例

#include <cstdio>
#include <cstdlib>
#include <fstream>
#include <iostream>
 
int main()
{
    // create a file, check success using operator! of temporary stream object
    if (!std::ofstream("file1.txt").put('a'))
    {
        std::perror("Error creating file1.txt");
        return EXIT_FAILURE;
    }
    std::cout << std::ifstream("file1.txt").rdbuf() << '\n'; // print file
 
    std::remove("file1.txt"); // delete file
 
    if (!std::ifstream{"file1.txt"}) // uses operator! of temporary stream object
    {
        std::perror("Error opening deleted file");
        return EXIT_FAILURE;
    }
    return EXIT_SUCCESS;
}

可能的输出

a
Error opening deleted file: No such file or directory

[编辑] 另请参阅

(C++17)(C++17)
删除文件或空目录
递归地删除文件或目录及其所有内容
(函数) [编辑]
重命名文件
(函数) [编辑]
C 文档 用于 remove