Linux的read/write、fread/fwrite、open/fopen区别
来源:互联网 发布:淘宝卖家红包 编辑:程序博客网 时间:2024/05/01 05:52
1,fread是带缓冲的,read不带缓冲.
2,fopen是标准c里定义的,open是POSIX中定义的.
3,fread可以读一个结构.read在linux/unix中读二进制与普通文件没有区别.
4,fopen不能指定要创建文件的权限.open可以指定权限.
5,fopen返回指针,open返回文件描述符(整数).
6,linux/unix中任何设备都是文件,都可以用open,read.
如果文件的大小是8k。
你如果用read/write,且只分配了2k的缓存,则要将此文件读出需要做4次系统调用来实际从磁盘上读出。
如果你用fread/fwrite,则系统自动分配缓存,则读出此文件只要一次系统调用从磁盘上读出。
也就是用read/write要读4次磁盘,而用fread/fwrite则只要读1次磁盘。效率比read/write要高4倍。
如果程序对内存有限制,则用read/write比较好。
都用fread 和fwrite,它自动分配缓存,速度会很快,比自己来做要简单。如果要处理一些特殊的描述符,用read 和write,如套接口,管道之类的
系统调用write的效率取决于你buf的大小和你要写入的总数量,如果buf太小,你进入内核空间的次数大增,效率就低下。而fwrite会替你做缓存,减少了实际出现的系统调用,所以效率比较高。
如果只调用一次(可能吗?),这俩差不多,严格来说write要快一点点(因为实际上fwrite最后还是用了write做真正的写入文件系统工作),但是这其中的差别无所谓。
- Linux的read/write、fread/fwrite、open/fopen区别
- Linux的read/write、fread/fwrite、open/fopen区别
- read/write、fread/fwrite、open/fopen区别
- fopen,open,fwrite,write,fread,read区别
- open, read, write/fopen,fread,fwrite区别
- open/read/write和fopen/fread/fwrite的区别
- fopen/fread/fwrite和open/read/write函数的区别
- open/read/write和fopen/fread/fwrite的区别
- open/read/write和fopen/fread/fwrite函数的区别
- open/read/write和fopen/fread/fwrite的区别
- open/read/write和fopen/fread/fwrite的区别
- open/read/write和fopen/fread/fwrite的区别
- open/read/write和fopen/fread/fwrite的区别
- open/read/write和fopen/fread/fwrite的区别
- open/read/write和fopen/fread/fwrite的区别
- open/read/write和fopen/fread/fwrite的区别
- open/read/write和fopen/fread/fwrite的区别
- fopen/open,fread/read,fwrite/write的区别
- 实用技巧链接
- 指针和引用有什么分别;如果传引用比传指针安全,为什么?如果我使用常量指针难道不行吗?
- 个人户口档案转移笔记(适用北京集体户口)
- BMP文件格式详解(BMP file format) (转)
- oracle查关时间操作
- Linux的read/write、fread/fwrite、open/fopen区别
- 电脑白痴与黑客的对话
- org.apache.struts.taglib.bean.CookieTei cannot be cast to javax.servlet.jsp.tagext.TagExtraInfo
- Java:WebService:XFire 与Axis2比较
- 为加快您的网站最佳做法--雅虎工作者总结
- 转:探索 Java 同步机制
- asp.net md5加密
- SQL语句,按不同字段进行汇总,string.Format()
- 天龙八部资源提取源代码