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()
{
    // 创建文件,使用临时流对象的 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("打开已删除文件时发生错误");
        return EXIT_FAILURE;
    }
    return EXIT_SUCCESS;
}

可能的输出:

a
打开已删除文件时发生错误: No such file or directory

参阅

(C++17)(C++17)
移除一个文件或空目录
移除一个文件或递归地移除一个目录及其所有内容
(函数)
重命名文件
(函数)