【问题标题】:How can I set the flag FILE_FLAG_BACKUP_SEMANTICS for an fstream object?如何为 fstream 对象设置标志 FILE_FLAG_BACKUP_SEMANTICS?
【发布时间】:2008-10-24 15:23:45
【问题描述】:

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

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

【问题讨论】:

    标签: c++ winapi visual-c++ fstream


    【解决方案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));
    

    【讨论】:

      猜你喜欢
      • 2015-08-26
      • 1970-01-01
      • 1970-01-01
      • 2019-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-13
      相关资源
      最近更新 更多