Это не был бы флаг самого файла, потому что разные учетные записи могут иметь доступ к разным файлам / каталогам. Вместо этого в Windows используются ACL (списки контроля доступа), которые представляют собой структуры данных, определяющие, кто к чему имеет доступ.
ACL в окнах могут использоваться практически со всем, на что ссылается дескриптор (файлы, каталоги, процессы, мьютексы, именованные каналы ...). Вы можете просмотреть ACL для файлов, перейдя в свойства файла и перейдя на вкладку «Безопасность».
Таким образом, в вашем приложении вы на самом деле не хотите проверять наличие флага, а должны сравнивать ACL файла с учетной записью пользователя, под которой работает ваше приложение. Проверьте AccessCheck Win32 функции. Я думаю, что это именно то, что вы ищете.
Лично я никогда не использовал эту функцию, но если вы ищете решение для Win32 и хотите вызвать функцию, это, вероятно, ваш лучший выбор. Однако, как отмечали другие, это может быть слишком сложно. Я всегда использовал _access (или _waccess), который является частью CRT, очень прост в использовании, и вы не получаете снижения производительности, получая дескриптор файла только для его закрытия (в зависимости от того, насколько напряженным является ваш цикл, эти вызовы может на самом деле сложить).