Могу ли я открыть один и тот же файл дважды (с помощью CreateFileA ), используя различные флаги (в данном случае, один с FILE_FLAG_NO_BUFFERING, а другой без)?
Подробно, это тот случай: во время запуска я создаю временный файл (с FILE_FLAG_DELETE_ON_CLOSE). Я заполняю его последовательно, и я не хочу беспокоиться о выполнении небуферизованного ввода-вывода в этой части. Затем, пока процесс запущен, я хочу получить доступ к этому файлу с помощью небуферизованного ввода-вывода, потому что у меня есть своя собственная логика кэширования. Таким образом, я думаю снова открыть тот же файл, на этот раз с FILE_FLAG_NO_BUFFERING, а затем закрыть старый дескриптор. Я хочу сделать это таким образом, по двум причинам:
- параллелизм. Если я закрою старый дескриптор до того, как открою новый, тем временем кто-то другой может связываться с моим файлом.
- FILE_FLAG_DELETE_ON_CLOSE удалит мой файл, когда я закрою первый дескриптор, не открывая другой. Это небольшое раздражение, которое я мог бы обойти.