Как я могу установить флаг FILE_FLAG_BACKUP_SEMANTICS для объекта fstream? - PullRequest
2 голосов
/ 24 октября 2008

Как я могу установить флаг FILE_FLAG_BACKUP_SEMANTICS для объекта fstream?

Вы можете установить большинство флагов с помощью fstream, но кажется, что этот не доступен. О флаге вы можете прочитать здесь .

1 Ответ

1 голос
/ 24 октября 2008

Я делал подобные вещи в прошлом, но это было какое-то время, поэтому я не уверен, что правильно понял.

Недостаточно документировано, но в vs2008 fstream принимает объект FILE в качестве конструктора. Вы можете создать объект FILE из идентификатора файла с помощью _fdopen (). Вы можете получить идентификатор файла из дескриптора os, используя _open_osfhandle.

Так что я думаю, что это похоже на:

int id = _open_osfhandle(CreateFile(..., FILE_FLAG_BACKUP_SEMANTICS...));
fstream f = new fstream(_fdopen(id));
...