std::remove
来自cppreference.com
在标头 <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) |
移除一个文件或空目录 移除一个文件或递归地移除一个目录及其所有内容 (函数) |
重命名文件 (函数) |