2

如何为 fstream 对象设置标志 FILE_FLAG_BACKUP_SEMANTICS?

您可以使用 fstream 设置大多数标志,但似乎这个标志不可用。您可以在此处阅读有关该标志的信息。

4

1 回答 1

1

我过去做过这种事情,但已经有一段时间了,所以我不确定我做对了。

没有很好的文档记录,但是在 vs2008 中,fstream 将 FILE 对象作为构造函数。您可以使用 _fdopen() 从文件 id 创建 FILE 对象。您可以使用 _open_osfhandle 从操作系统句柄获取文件 ID。

所以我认为它就像:

int id = _open_osfhandle(CreateFile(..., FILE_FLAG_BACKUP_SEMANTICS...));
fstream f = new fstream(_fdopen(id));
于 2008-10-24T17:07:42.600 回答