我正在修复使用旧式iostream库的一些相当旧的C++代码,我遇到了以下非编译代码行:
::ofstream ofile;
ofile.open("filename", ios::trunc, filebuf::openprot);
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
error C2039: 'openprot' : is not a member of 'std::basic_filebuf<_Elem,_Traits>'
Run Code Online (Sandbox Code Playgroud)
所以很明显它不再存在了.问题是,我找不到任何关于什么openprot作为参数的信息,因此我不能用新的东西替换它,我害怕完全删除参数.
任何有历史C++知识的人都知道这件事做了什么?
该参数表示/表示用于打开文件的保护模式.它显示在此IBM Legacy类库参考中.
filebuf::openprot是/是fstream类族构造函数和open函数prot参数的默认参数,它指示应该打开/创建文件的保护模式.
打开文件时使用的默认保护模式.
例如,在您的系统上可能是0644,这意味着如果创建了文件,则所有者将具有读/写权限,而其他所有人都将具有只读权限.
在你的情况下,无论如何都要传递默认参数,我会说删除它是安全的.