filebuf :: openprot的用途是什么,是否有替换?

时间:2012-12-19 23:29:13

标签: 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 ++知识的人都知道这件事是做什么的吗?

2 个答案:

答案 0 :(得分:6)

该参数表示/表示用于打开文件的保护模式。它出现在IBM Legacy Class Library Reference中。

filebuf::openprotfstream类族构造函数和open函数'prot参数的默认参数,它指示文件应该打开的保护模式/用。创建。

  

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

例如,在您的系统上,它可能是0644,意味着如果创建了文件,则所有者将具有读/写权限,其他所有人都将具有只读权限

在你的情况下,无论如何都会传递默认参数,我会说删除它是安全的。

答案 1 :(得分:4)

根据the Visual Studio 6.0 documentationopenprot使用操作系统的默认值:

  

文件保护规范;默认为静态整数filebuf::openprot,这相当于操作系统默认值(MS-DOS的filebuf::sh_compat)。