如何为fstream对象设置标志FILE_FLAG_BACKUP_SEMANTICS?
您可以使用fstream设置大多数标记,但似乎这个标记不可用。您可以阅读标志here。
答案 0 :(得分:1)
我过去做过这种事情,但已经有一段时间了,所以我不确定我是否正确。
没有详细记录,但在vs2008中,fstream将FILE对象作为构造函数。您可以使用_fdopen()从文件ID创建FILE对象。您可以使用_open_osfhandle从os句柄获取文件ID。
所以我觉得它就像:
int id = _open_osfhandle(CreateFile(..., FILE_FLAG_BACKUP_SEMANTICS...));
fstream f = new fstream(_fdopen(id));