"a+" "a" app|out之间的关系?
whoho 2007-02-27 11:35:16 今天注意到一个问题,就是关于以“添加”方式打开文件的实际效果:
[[[[以下一律不考虑二进制文件!!!但可以推而广之]]]]
在C++标准中,合法的添加模式只有一种:
ios_base::app|ios_base::out
遵守标准的编译器(库)应当让试图通过其它含有app的文件打开方式组合
都open失败
而C标准中,则有两种添加模式,C99作如下陈述:
"a": append; open or create text file for writing at end-of-file
"a+": append; open or create text file for update, writing at end-of-file
同样,如果一个open 模式串中含有除此之外的添加模式,也将引起打开失败
但是,对于这两个陈述的区别,我有些糊涂了,实际写程序验证也没有发现任何差别,那么实际上这a和a+是否是一样的呢?
在C++标准文本中,明确说明ios_base::app|ios_base::out与"a"是等价的,但没有与"a+"等价的东西,这是否说明a与a+也是同样的意思呢?
不知道各位谁注意到了这些,还请指教