【发布时间】:2008-10-24 15:23:45
【问题描述】:
如何为 fstream 对象设置标志 FILE_FLAG_BACKUP_SEMANTICS?
您可以使用 fstream 设置大多数标志,但似乎这个不可用。您可以阅读有关标志here 的信息。
【问题讨论】:
标签: c++ winapi visual-c++ fstream
如何为 fstream 对象设置标志 FILE_FLAG_BACKUP_SEMANTICS?
您可以使用 fstream 设置大多数标志,但似乎这个不可用。您可以阅读有关标志here 的信息。
【问题讨论】:
标签: c++ winapi visual-c++ fstream
我过去做过这种事情,但已经有一段时间了,所以我不确定我做对了。
没有很好的记录,但是在 vs2008 中,fstream 将 FILE 对象作为构造函数。您可以使用 _fdopen() 从文件 id 创建 FILE 对象。您可以使用 _open_osfhandle 从操作系统句柄中获取文件 ID。
所以我觉得是这样的:
int id = _open_osfhandle(CreateFile(..., FILE_FLAG_BACKUP_SEMANTICS...));
fstream f = new fstream(_fdopen(id));
【讨论】: