码迷,mamicode.com
首页 > 其他好文 > 详细

unix-2

时间:2016-09-04 20:34:42      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:

1、fopen和open区别

技术分享
 1 前者属于低级IO,后者是高级IO。
 2 前者返回一个文件描述符,后者返回一个文件指针。
 3 前者无缓冲,后者有缓冲。
 4 前者与 read, write 等配合使用, 后者与 fread, fwrite等配合使用。
 5 后者是在前者的基础上扩充而来的,在大多数情况下,用后者。 
 6 
 7 1.open 是系统调用 返回的是文件句柄,文件的句柄是文件在文件描述副表里的索引,fopen是C的库函数,返回的是一个指向文件结构的指针。
 8 2.fopen是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内核api 
 9 3.fopen是标准c函数。返回文件流而不是linux下文件句柄。设备文件不可以当成流式文件来用,只能用open
10 4.fopen是用来操纵正规文件的,并且设有缓冲的,跟open还是有一些区别
11 5.一般用fopen打开普通文件,用open打开设备文件
12 6.fopen是标准c里的,而open是linux的系统调用.
13 7.他们的层次不同.
14 8.fopen可移植,open不能
15 9.我认为fopen和open最主要的区别是fopen在用户态下就有了缓存,在进行read和write的时候减少了用户态和内核态的切换,而open则每次都需要进行内核态和用户态的切换;表现为,如果顺序访问文件,fopen系列的函数要比直接调用open系列快;如果随机访问文件open要比fopen快。
View Code

 

unix-2

标签:

原文地址:http://www.cnblogs.com/zhanzhao/p/5840079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!