我正在修复一些使用旧式 iostream 库的相当旧的 C++ 代码,我遇到了以下非编译代码行:
::ofstream ofile;
ofile.open("filename", ios::trunc, filebuf::openprot);
我收到这个错误:
error C2039: 'openprot' : is not a member of 'std::basic_filebuf<_Elem,_Traits>'
很明显,它已经不复存在了。问题是,我找不到关于 openprot
作为参数做了什么的任何信息,因此我不能用新的东西替换它,而且我害怕完全删除参数。
任何具有任何 C++ 历史知识的人都知道这个东西做了什么?
最佳答案
该参数表示打开文件的保护模式。它出现在这个 IBM Legacy Class Library Reference 中.
filebuf::openprot
是/是 fstream
的默认参数类族构造函数和open
函数' prot
参数,指示应使用何种保护模式打开/创建文件。
The default protection mode used when opening files.
例如,在您的系统上它可能是 0644
,这意味着如果创建文件,所有者将具有读/写权限,而其他人将具有只读权限。
在您的情况下,无论如何都会传递默认参数,我会说删除是安全的。
关于c++ - filebuf::openprot 的用途是什么,它有替代品吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13962961/