在UNIX下使用C++删除文件

25

你们在Linux操作系统上通常如何删除文件?我正在考虑使用unlink函数调用,但我想知道是否有更好的方法,因为C++标准未提及文件删除操作且它是依赖于系统的。

5个回答

31

我在我的所有代码中使用remove() - 对我们一些人来说,可移植性很重要。 - anon
在 POSIX 中,remove 实际上被指定为非目录文件的 unlink 等效操作。 - Random832

20

标准库中包含一个名为remove的函数,可以完成这个任务。尽管如果我已经在使用boost的话,我更喜欢使用boost.filesystem来完成这个任务。

#include <cstdio>

int main() {
    std::remove("/home/js/file.txt");
}

2

unlink()是由POSIX标准定义的,在任何符合POSIX标准的系统上都存在,包括许多不符合POSIX标准的系统。


1

使用unlink是正确的方法。


0
请注意,最近的内核还提供了unlinkat。如果您在目录本身上有一个文件描述符,则此函数比unlink更快。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接