gpt4 book ai didi

c++ - 如何在创建文件之前测试文件是否存在

转载 作者:IT王子 更新时间:2023-10-29 01:03:14 24 4
gpt4 key购买 nike

我想看看文件是否存在。如果它不存在,那么我想创建它。顺便说一句,我正在使用 Linux。

最佳答案

你不能可靠地做到这一点。在您检查文件是否存在和创建文件之间,另一个进程可能会创建它。

您应该继续创建文件。根据您尝试做的更大的事情,如果文件已经存在,您可能需要以下选项之一来执行操作:

  • 就地修改之前的内容:open("file", O_RDWR|O_CREAT, 0666)
  • 删除之前的内容:open("file", O_WRONLY|O_CREAT|O_TRUNC, 0666)
  • 附加到之前的内容:open("file", O_WRONLY|O_CREAT|O_APPEND, 0666)
  • 操作失败:open("file", O_WRONLY|O_CREAT|O_EXCL, 0666)

其中大部分(但不幸的是不是全部)在更高级别的 iostream 接口(interface)上都有等效项。可能还有一种方法可以将 iostream 包装在您从 open 获得的文件描述符周围,具体取决于您拥有的 C++ 库。

另外,我要提一下,如果你想自动替换文件的内容(这样没有进程会看到不完整的文件),唯一的方法就是写出新内容到一个新的文件,然后使用重命名将它移到旧文件上。

关于c++ - 如何在创建文件之前测试文件是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7863145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com