Подтвердить что ты не робот

Разница между OPEN_ALWAYS и CREATE_ALWAYS в CreateFile() для Windows API

Может ли кто-нибудь объяснить, какая разница между настройками создания OPEN_ALWAYS и CREATE_ALWAYS функции CreateFile() API окон

Мне кажется, что они оба просто "создают файл, если он еще не существует".

4b9b3361

Ответ 1

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