filebuf::openprot的目的是什么,它有替代品吗?

7

我正在修复一些相当老的C++代码,该代码使用旧式iostream库,我遇到了以下无法编译的代码行:

::ofstream ofile;
ofile.open("filename", ios::trunc, filebuf::openprot);

我遇到了这个错误:
error C2039: 'openprot' : is not a member of 'std::basic_filebuf<_Elem,_Traits>'

很明显,这是一些已经不存在的内容。问题是,我找不到有关openprot作为参数时的具体信息,因此无法用新的东西来替换它,而我又不敢完全删除该参数。

有了解 C++ 历史的人知道这个东西的作用吗?

2个回答

8
那个参数指示/指示了以哪种保护模式打开文件。它在这个IBM Legacy Class Library Reference中显示。 filebuf::openprot是/曾经是fstream类系构造函数和open函数的prot参数的默认参数,它指示文件应该以哪种保护模式打开/创建。

打开文件时使用的默认保护模式。

例如,在您的系统上,它可能是0644,这意味着如果文件被创建,则所有者将具有读/写权限,其他所有人将只能读取。
考虑到在您的情况下默认参数已经被传递了,我认为可以安全地删除它。

谢谢提供信息。我已经移除了该参数。 - Archimaredes

4
根据 Visual Studio 6.0文档openprot 使用操作系统的默认设置:

文件保护规范;默认为静态整数 filebuf::openprot,等同于操作系统默认设置(对于 MS-DOS 是 filebuf::sh_compat)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接