open()与fopen()的区别
来源:互联网 发布:如何打开端口8081 编辑:程序博客网 时间:2024/04/30 13:09
如题,看到好多调用设备文件的程序都是用的open函数,难道用fopen不可以吗?
主要求高手谈谈这两个函数的区别,以及具体在什么时候该用哪个函数?
第 1 楼 tent8()
2006-8-26 17:53:47
得分:2
fopen是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内核api
linux中的系统函数是open,fopen是其封装函数,个人观点。仅供参考。
第 2 楼 fytzzh(我爱summer)
2006-8-26 20:12:19
得分:6
文件描述符是linux下的一个概念,linux下的一切设备都是以文件的形式操作.如网络套接字、硬件设备等。当然包括操作文件。
fopen是标准c函数。返回文件流而不是linux下文件句柄。
第 3 楼 lurenfu(具有中国特色的社会主义初级阶段,一百年不变)
2006-8-28 16:27:38
得分:2
设备文件不可以当成流式文件来用,只能用open
fopen是用来操纵正规文件的,并且设有缓冲的,跟open还是有一些区别
第 4 楼 grass312(十步杀一人)
2006-8-28 20:03:37
得分:2
一般用fopen打开普通文件,用open打开设备文件
第 5 楼 hjmhjms(大笨汪)
2006-8-29 11:50:44
得分:2
fopen是标准c里的,而open是linux的系统调用.
他们的层次不同.
fopen可移植,open不能
第 6 楼 cllr(寂寞2001)
2006-8-29 20:13:08
得分:6
我认为fopen和open最主要的区别是fopen在用户态下就有了缓存,在进行read和write的时候减少了用户态和内核态的切换,而open则每次都需要进行内核态和用户态的切换;表现为,如果顺序访问文件,fopen系列的函数要比直接调用open系列快;如果随机访问文件open要比fopen快。
fopen是有缓冲机制的,它使用了FILE这个结构才保存缓冲数据。
open没有缓存机制,每次读操作都直接从文件系统中获取数据。
看一下FILE这个结构的定义就知道区别了,FILE包含了一个open返回回来的handle
- fopen与open的区别
- fopen与open的区别
- open与fopen的区别
- fopen与open的区别
- open与fopen的区别
- open与fopen的区别
- open与fopen的区别
- fopen与open的区别
- fopen与open的区别
- fopen与open的区别
- fopen与open的区别
- open与fopen的区别
- open与fopen的区别
- open与fopen的区别
- open()与fopen()的区别
- open()与fopen()的区别
- fopen与open的区别
- fopen与open的区别
- Uva - 1612 - Guess
- MAC 命令行 HomeBrew ,RubyGems, Node.js详解
- 搭建eclipse+python+selenium测试环境
- <s:select>控制为只读
- 旋转的太极
- open()与fopen()的区别
- 三星拍照旋转问题
- Linux 查看进程以及子进程/线程
- 剑指offer 37 - 两个链表的第一个公共节点
- Intersection of Two Linked Lists
- IE乱码火狐不乱码解决
- Spark实战
- 运用栈非递归遍历二叉树
- How do I add classes to main menu ul and li in Drupal 8