fopen是基于ANSIC标准C的的API

open是UNIX系统的API的区别

这里重点运用fopen等ANSIC标准C的的API,open等UNIX系统的API可参考主页文章

1.层次不同
open是系统调用,返回的是文件句柄,文件的句柄是文件在文件描述副表里的索引,
fopen是ANSIC标准中的C语言库函数,返回的是一个指向文件结构的指针)。在不同的系统中应该调用不同的内核api。linux中的系统函数是open,fopen是其封装函数,fopen的实现要调用open。标准C库.
2.fopen和open最主要的区别是是否有缓存
fopen用户态下就有了缓存,它使用了FILE这个结构保存缓冲数据。在进行read和write的时候减少了用户态和内核态的切换。
open没有缓存,每次读操作都直接从文件系统中获取数据。在进行read和write的时候每次都需要进行内核态和用户态的切换。
表现为,如果顺序访问文件,fopen系列的函数要比直接调用open系列快;如果随机访问文件open要比fopen快。
3.一般用fopen打开普通文件,用open打开设备文件。

fopen函数原型和头文件

#include <stdio.h>FILE *fopen(const char *path, const char *mode);

返回值:fopen函数返回新打开文件的文件指针;如果此文件不能打开,则返回NULL指针。

参数:path: 要打开的文件路径
           mode: 访问文件的模式, 它包括:

代码实现

#include <stdio.h>#include <string.h>int main()
{//FILE *fopen(const char *path, const char *mode);FILE *fp;char *str="zhengyanfeng handsome";char readBuf[128]={0};fp=fopen("./zheng.txt","w+");//size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);//ptr buf//size sizeof char//geshu//which filefwrite(str,sizeof(char),strlen(str),fp);fseek(fp,0,SEEK_SET);// fwrite(str,sizeof(char)*strlen(str),1,fp);//size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);fread(readBuf,sizeof(char)*strlen(str),1,fp);printf("read data:%s\n",readBuf);return 0;
}

open函数和fopen函数区别相关推荐

  1. php fopen函数php,fopen函数介绍与使用方法详解

    在我们的PHP开发中会经常遇到fopen()和file_get_contents(),相信很多同学都发现这两个函数基本上都差不多,那么我们今天就来讲讲php fopen()和file_get_cont ...

  2. 【C/C++】freopen 函数和 fopen 函数|标准输入输入写入文件|屏幕输出写入文件

    目录 相同和不同点 例子 fopen freopen 相同和不同点 freopen 和 fopen 都是C的标准库函数被包含于C标准库头文件<stdio.h>中. fopen就是我们最熟悉 ...

  3. C语言文件 open函数和fopen函数

    open 头文件: #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> 定义函数: in ...

  4. freopen 函数和 fopen 函数简单介绍

      偶然碰到了freopen这个函数,起初以为和fopen什么的一样,但是发现close后不能好好输出了.先说说fopen()吧. 1. fopen()   在C语言中遇到使用文件输入/输出的,最常见 ...

  5. 函数:fopen的使用方法

    函数:fopen 函数原型:FILE * fopen(const char * path,const char * mode); 返回值:文件顺利打开后,指向该流的文件指针就会被返回.如果文件打开失败 ...

  6. python的fopen函数_打开文件fopen函数的用法

    在C语言中,对文件操作之前,首先需要打开文件,使用的函数是fopen函数,它的作用是打开文件,获取该文件的文件指针,方便后续操作.函数原型为:FILE *fopen(const char *filen ...

  7. 九、Linux文件 - fopen函数和fclose函数讲解

    目录 1.fopen函数 2.fclose函数 3.fopen函数和fclose实战 1.fopen函数 fopen fwrite fread fclose ...属于标准C库 include < ...

  8. php fopen函数

    php中没有单独的文件创建函数,如果我们想创建函数,可以使用fopen(),fopen()函数字面意思是打开文件,但该函数也有创建文件的功能,当使用 fopen() 函数打开一个文件时,如果文件不存在 ...

  9. fread、fwrite、fopen函数的简单使用和open、read、write区别解析

    这几个函数的区别:fread.fwrite.fopen和open.read.write区别解析 标准C库函数的简单使用 fopen函数原型: #include <stdio.h> FILE ...

最新文章

  1. leetcode算法题--二叉树中的最长交错路径★
  2. 常考数据结构与算法:最长公共子串
  3. 用Scikit-learn和TensorFlow进行机器学习(二)
  4. opengl加载显示3D模型obj类型文件
  5. android 画布抗锯齿,android – 如何在画布和路径中进行抗锯齿处理
  6. linux查看mariadb安装卸载,MySQL——在Linux下安装和卸载MariaDB
  7. 一种网页倒计时的实现
  8. 总结:如何使用ClearCase进行开发工作
  9. PHP 千图成像,千图成像,教你制作由无数图片组成的人像效果
  10. 软件测试自学毛笔字纹身,254439
  11. 关于Diy51单片机的趣事
  12. Sam Altman专访:GPT-4没太让我惊讶,ChatGPT则让我喜出望外
  13. 基本的SELECT语句的练习(MySQL)(SQLyog)
  14. html语言需要dw吗,DW(HTML-基础知识点1)
  15. 厂区佩戴安全帽检测算法 yolov5
  16. 《AutoCAD 2014中文版实用教程》一一1.2 标题栏
  17. 大公司github地址
  18. LT1381CS#TRPBF RS232双驱动器/接收器 低功耗5V
  19. 教大家如何区分屏蔽数据线的好坏
  20. SwiftUI Macaw 如何修复Expression was too complex to be solved in reasonable time

热门文章

  1. javaweb上传文件
  2. win10计算器_新一代Win10记事本详细体验,30年后首更新
  3. 东华oj1-求长方形的面积和周长C++
  4. 求一个长方形的面积S及周长P。面积的公式为S = a × b,周长的公式P=2*(a+b),其中a代表长方形的长,b代表长方形的宽。
  5. C#调用SAPI实现语音合成的两种方法
  6. FLUKA版本更新过程
  7. WIN10 qCOW2 下载
  8. php工程师会掉头发吗,它是掉头发的“凶手”,吃的越多头发掉的越厉害!千万要注意...
  9. 酷卡机器人c2编程手册_KUKA C2操作与基础编程(中文版).pdf
  10. 臭名昭著的黑客攻击事件 20件