c - Windows API的CreateFile()中OPEN_ALWAYS和CREATE_ALWAYS的区别

标签 c windows createfile

谁能解释一下 CreateFile() 的创建配置 OPEN_ALWAYSCREATE_ALWAYS 之间的区别是什么? Windows API的功能?

对我来说,他们似乎都只是“如果文件不存在就创建文件”。

最佳答案

如果文件已经存在,

CREATE_ALWAYS 也会截断内容。另一方面,OPEN_ALWAYS 不会破坏已经存在的文件。

以下是不同值如何以表格形式工作:

                         |                    When the file...
This argument:           |             Exists            Does not exist
-------------------------+------------------------------------------------------
CREATE_ALWAYS            |            Truncates             Creates
CREATE_NEW         +-----------+        Fails               Creates
OPEN_ALWAYS     ===| does this |===>    Opens               Creates
OPEN_EXISTING      +-----------+        Opens                Fails
TRUNCATE_EXISTING        |            Truncates              Fails

关于c - Windows API的CreateFile()中OPEN_ALWAYS和CREATE_ALWAYS的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14469607/

相关文章:

c - QUEUE宏的使用

c - 我什么时候需要在 C 中进行类型转换?

使用字符串创建二叉搜索树

windows - 如果不成功则暂停命令而不是自动关闭

windows - 在运行批处理文件时隐藏 CMD

command-line - MacVim:使用 `alias mvim="open -a macvim"` 从命令行创建新文件

c - 搜索列表时出现运行时错误

c++ - 关于 NTFS Change Journal USN 记录的问题

c++ - 如何(字面意思)创建一个 makefile(用于 linux 中的 c)?

CreateFile() 成功,但文件不在磁盘上。