心理

当前位置 /首页/完美生活/心理/列表

open和fopen的区别

open和fopen的区别

1、来源不同

open是unix系统调用函数(包括Linux),返回的是文件描述符,它是文件描述符表里的索引。

fopen是ANSIC标准中的C语言库函数,在不同的系统中应该调不同的内核api,返回的是一个指向文件结构的指针。

2、移植性

从来源看,fopen是C标准函数,因此拥有良好的移植性,而open是unix系统调用,移植性有限,如windows下相似的功能使用api函数CreatFile。

3、使用范围

open返回文件描述符,而文件描述符是unnix系统下的重要概念,unix下的一切设备都是文件的形式操作,如网络套接字、硬件设备等、当然包括操作普通正规文件(Regular File)

Fopen是从来操纵普通正规文件(Regular File)的

4、 文件IO层次

如果从文件IO的角度来看,open属于低级IO函数,fopen属于高级IO函数,低级和高级的简单区分标准是:谁离系统内核更近,低级文件IO运行在内核态、高级文件IO运行在用户态。

5、 缓冲区

open没缓冲区,fopen有缓冲区

TAG标签:fopen #