我想检查一个文件是否存在。如果不存在,那么我想创建它。顺便说一下,我正在使用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接口中都有相应的等效选项。此外,取决于你使用的C++库,还可以有一种将iostream包装在由open
得到的文件描述符周围的方法。rename
将其移动到旧文件上方。fopen
的模式字符串感兴趣,要在原地修改内容,请使用fopen("file", "rb+")
;要删除先前的内容,请使用fopen("file", "wb")
;要追加到先前的内容,请使用fopen("file", "ab")
。如果要在单个fopen
调用中进行存在性检查,则似乎不可能。 - tueftlfopen("file", "wx")
仅在文件不存在时才添加到_open。 - mikebob