问题
Can anyone explain what the difference is between the creation dispositions OPEN_ALWAYS
and CREATE_ALWAYS
of the CreateFile() function of the windows API?
To me it seems that they both simply 'create the file if it does not already exist'.
回答1:
CREATE_ALWAYS
also truncates the contents if the file already exists. On the other hand, OPEN_ALWAYS
will not clobber an already existing file.
Here's how the different values work in tabular form:
| 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
来源:https://stackoverflow.com/questions/14469607/difference-between-open-always-and-create-always-in-createfile-of-windows-api