c++ - filebuf::openprot 的用途是什么,它有替代品吗?

标签 c++

我正在修复一些使用旧式 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/

相关文章:

C++NRVO 保证?或者更好地选择非常量引用参数或shared_ptr?

C++ boost 线程 ID 和单例

c++ - 为什么这个简单的 lambda 在 std::thread 中始终比在 gcc 4.9.2 的 main 函数中运行得更快?

c++ - C++ 函数模板是否鼓励弱类型化?

C++类和对象——内存

c++ - 从命令行运行 nvcc 时出现问题

c++ - 在 C++ 中将映射传递给模板函数时出错

c++ - Qt、QTextStream - 将字符/字符串输入到 int 中

c++ - 在 C++ 中使用字符串

c++ - 我能得到多接近于零的除法?