FILE* fopen(const char*,const char* type)
大一刚学编程的时候就对fopen的参数很迷惑,今天仔细思考了fopen的参数的格式,我觉得参数设计得很不合理
fopen的格式是这样:
r 读
w 写,文件截断为0
a 写,添加模式
+ 读+写
b 二进制打开
rwa是主位,+b是修饰位
但是我认为这个接口并不友好,因为这几个字符的功能并不是正交的
rwa看上去就是分别代表read write append,仅仅是看上去而已,但是w竟然还有截短的功能,而a也暗含了write的意思,+则表示读写.用的时候还得去回忆这几个字符代表的意思,非常不直观
如果让我设计这个功能,直接用位掩码好了,或者用让每个字符只表示一个意思,r-read w-write a-append b-binary t-截短
如果想打开读写文件,用"rw",要截短,用"rwt",再加上二进制"rwtb"