std::remove
定义于头文件 <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) |
移除一个文件或空目录 移除一个文件或递归地移除一个目录及其所有内容 (函数) |
重命名文件 (函数) |