在UNIX下删除C++中的文件

20 c++ unix file-io posix

你们通常如何删除Linux操作系统上的文件?我正在考虑使用unlink函数调用,但我想知道你是否有更好的想法,因为C++标准没有提到文件删除操作,它是系统相关的.

Tod*_*lin 28

是的 - C++标准将这些东西留给了操作系统,所以如果你使用的是Linux(或任何POSIX系统),unlink()那就是你所拥有的.

remove()您可以尝试使用C标准,但请记住,除了"常规文件"之外,其行为未指定,因此它并不能真正保护您不会进入特定于平台的文件系统详细信息(链接等) .

如果您想要更高级别,更强大和更便携的东西,请查看Boost Filesystem.


Joh*_*itb 14

标准包括一个名为remove的功能.虽然我更喜欢boost.filesystem那个(如果我已经使用过boost).

#include <cstdio>

int main() {
    std::remove("/home/js/file.txt");
}
Run Code Online (Sandbox Code Playgroud)