fstream open函数中的第三个参数是什么意思?我尝试在网络上进行搜索,但是没有关于带有三个参数的重载版本的明确解释。 这是来自fstream文件:
void open(const char* _Filename, ios_base::openmode _Mode = ios_base::in | ios_base::out,
int _Prot = (int) ios_base::_Openprot) { // open a C stream with specified mode
如果在某些情况下该参数对于程序员确实是必需的,还是只是为了实现方便?
答案 0 :(得分:6)
就C ++标准而言,there is no third parameter。为了实现某些特定于实现的便利,您的实现可能具有默认参数,但是C ++标准没有此类参数。
答案 1 :(得分:1)
第三个参数记录在Microsoft's documentation for the basic_fstream::open()
method中:
参数
_文件名
要打开的文件的名称。_Mode
ios_base::openmode中的枚举之一。_Prot
默认的文件打开保护,等同于_fsopen, _wfsopen中的shflag
参数。
自变量
shflag
是一个常量表达式,由Share.h中定义的以下清单常量之一组成。_SH_COMPAT
为16位应用程序设置兼容模式。_SH_DENYNO
允许读写访问。_SH_DENYRD
拒绝对该文件的读取访问。_SH_DENYRW
拒绝对该文件的读写访问。_SH_DENYWR
拒绝对该文件的写访问。
std::ios_base::_Openprot
的值定义为_SH_DENYNO
。