CppDS.com

C++ 98 11 14 17 20 手册

std::remove

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

删除 fname 所指向的字符串所标识的文件。

若文件为当前进程或另一进程打开,则此函数行为是实现定义的。具体而言, POSIX 系统解链接文件名,到最后一个运行的进程关闭该文件为止,即使这是最后一个到文件的硬链接也不回收文件系统空间。 Windows 不允许删除该文件。

参数

fname - 指向空终止字符串的指针,字符串含标识待删除文件的路径

返回值

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

注意

POSIX 指定此函数行为的许多额外细节。

标准库亦定义接收一对迭代器和值的函数模板 std::remove ,此重载是标准算法之一。

示例

#include <iostream>
#include <fstream>
#include <cstdio>
int main()
{
    bool ok = static_cast<bool>(std::ofstream("file1.txt").put('a')); // 创建文件
    if(!ok) { std::perror("Error creating file1.txt"); return 1; }
    std::cout << std::ifstream("file1.txt").rdbuf() << '\n'; // 打印格式
 
    std::remove("file1.txt"); // 删除文件
 
    bool failed = !std::ifstream("file1.txt");
    if(failed) { std::perror("Error opening deleted file"); return 1; }
}

可能的输出:

a
Error opening deleted file: No such file or directory

参阅

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