繁体   English   中英

为什么fstream.open()失败“如果模式同时设置了截断和应用程序”?

[英]Why does fstream.open() fail “If the mode has both trunc and app set”?

我花了很.open()才弄清楚我的.open()调用没有打开文件,因为我同时设置了truncapp模式选项。 我只是在抓到C ++文档上写的一点笔记后才想到的。

这似乎是一个奇怪的陷阱。 为什么会这样呢? 您不能截断文件然后仅追加吗? 还是这被认为是多余的规范?

标志的允许组合在标准的[filebuf.members]中指定。 表132给出了可能性:

在此处输入图片说明

因此,由于truncapp的组合不在表中,因此打开必须失败。

iostream打开模式大致对应于C库中的fopen模式,而fopen具有截断的w模式和附加a模式,但不能将两者组合。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM