谁能解释Windows API的CreateFile()函数的创建处置OPEN_ALWAYS
和CREATE_ALWAYS
之间的区别是什么?
在我看来,他们俩都只是“如果文件不存在就创建它”。
最佳答案
如果文件已经存在,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