为什么fopen的参数这么奇怪呢?
2012-12-15 00:29
330 查看
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"
大一刚学编程的时候就对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"
相关文章推荐
- 奇怪,,为什么会有这么简单的错误,,初次使用腾讯云服务器创建网站
- php for 循环a到z为什么会出现这么奇怪的现象?
- Java 把对象作为参数传到一个方法里,这个是值传递还是引用传递, 为什么结果这么怪?
- 第一篇博文:PHP函数原型中的可选参数写法为什么这么写?
- 内核启动参数详解、参数为什么这么设置
- 为什么匿名内部类参数必须为final类型
- 为什么项目符号自动编号到了10之后,文字和编号离这么远
- MR-J3A为什么没有pdxx参数设置
- 为什么 Node.js 这么火,而同样异步模式 Python 框架 Twisted 却十几年一直不温不火?
- 抖音短视频、西瓜视频、快手等短视频app为什么这么火
- javascript,jQuery自执行函数(匿名函数)为什么要把windows, jQuery, undefined作为参数传进去
- 需求,需求分析为什么这么难?
- 为什么匿名内部类参数必须为final类型
- fopen()中w 和w+等各个参数的区别
- extjs里(function(){Ext.onReady(function(){});})();为什么要这么写
- 在java语言中为什么有时候构造方法有时要构造一个没有参数的方法
- android:layout_width=“0dp”有什么用?为什么这么设置?
- [置顶] nmap为什么这么强大之主机发现
- 为什么printf的参数是从右向左压栈