fopen 和 open 的什么区别(详细) 您所在的位置:网站首页 fopen和open的区别 fopen 和 open 的什么区别(详细)

fopen 和 open 的什么区别(详细)

2024-06-18 13:31| 来源: 网络整理| 查看: 265

文章目录 前言一、来源的不同二、移植性三、适用范围四 缓冲

前言

少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。——刘向

一、来源的不同

从来源的角度很好区分俩种的差别

open是UNIX系统调用函数(Linux等),返回的是文件描述符,在文件中起到索引的作用。

标准io 是由标准c库提供的 通用的 只针对普通的文件文件io linu系统特有的使用的是GLIBC库 针对linu所有文件

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

二、移植性

fopen是C标准库函数,因此拥有良好的移植性;而open是UNIX系统调用,移植性有限。如在window下相似的功能使用API函数CreateFile。

三、适用范围 open返回文件描述符,而文件描述符是UNIX系统下的一个重要概念,UNIX下的一切设备都是以文件的形式进行操作,包括之后进程间通信所用的管道也是以文件形式打开,以及普通的文件。更接近内核fopen是用来操作普通文件,位于用户层更高级 四 缓冲

1.缓冲文件系统 使用“fopen fclose fread fputs”等函数的时候会在内存开辟一个缓冲区 ,先将磁盘文件读取到缓冲区中,装满之后内存在缓冲区进行数据的读取,写文件时也是类似要经过缓冲区执行;因此执行速度就和缓冲区大小相关,缓冲区大操作外存次数就少,速度就快、效率就高。一般来说文件缓冲区的大小有机器决定 2.非缓冲的文件系统 非缓冲的文件系统依赖于操作系统,通过系统的功能对文件进行读写,只能写二进制文件,因此效率高,速度快。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有