Namespaces
Variants

std:: remove

From cppreference.net
< 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()
{
    // 创建文件,使用临时流对象的 operator! 检查操作是否成功
    if (!std::ofstream("file1.txt").put('a'))
    {
        std::perror("Error creating file1.txt");
        return EXIT_FAILURE;
    }
    std::cout << std::ifstream("file1.txt").rdbuf() << '\n'; // 输出文件内容
    std::remove("file1.txt"); // 删除文件
    if (!std::ifstream{"file1.txt"}) // 使用临时流对象的 operator!
    {
        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