open函数和fopen函数区别

news/2024/11/15 6:41:37/

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;
}


http://www.ppmy.cn/news/644274.html

相关文章

C语言中的fopen函数

fopen 函数原型&#xff1a;FILE * fopen(const char * path, const char * mode); 相关函数&#xff1a;open, fclose, fopen_s, _wfopen 返回值&#xff1a;文件顺利打开后&#xff0c;指向该流的文件指针就会被返回。如果文件打开失败则返回 NULL&#xff0c;并把错误代码存…

fopen函数

No manual entry for fopen 如果出现这个错误&#xff0c;可以尝试yum install man-pages,因为默认的manual不完整。 $ man fopen#include <stdio.h>FILE *fopen(const char *pathname, const char *mode);fopen 函数的定义使用了常量指针&#xff08;const char*)&#…

c语言文件操作函数总结fopen和fclose、fprintf和fscanf(格式化读写文件)

fopen和fclose FILE *fp fopen(“demo.txt”, “r”); fopen() 会获取文件信息&#xff0c;包括文件名、文件状态、当前读写位置等&#xff0c;并将这些信息保存到一个 FILE 类型的结构体变量中&#xff0c;然后将该变量的地址返回。 表示以“只读”方式打开当前目录下的 d…

python format格式化函数详解

format函数介绍 Python2.6 开始&#xff0c;新增了一种格式化字符串的函数 str.format()&#xff0c;它增强了字符串格式化的功能。 基本语法是通过 {} 和 : 来代替以前的 % 。format 函数可以接受不限个参数&#xff0c;位置可以不按顺序。字符串的参数使用{NUM}进行表示,0,…

fopen( ) 函数简介

头文件&#xff1a; #include <stdio.h> 函数原型&#xff1a; FILE *fopen(char *filename, char *mode); 功能&#xff1a; 打开文件 返回值&#xff1a; 打开成功&#xff1a;返回一个FILE * 类型的结构体指针&#xff1b; 打开失败&#xff1a;返回NULL&…

C语言fopen函数了解

fopen()函数功能&#xff1a;open a file. 原型&#xff1a;FILE * fopen(const char * path,const char * mode); 需要#include<stdio.h> 返回值&#xff1a;文件顺利打开后&#xff0c;指向该流的文件指针就会被返回。如果文件打开失败则返回NULL&#xff0c;并把错…

python format 格式化函数用法详解

本文转载整理自&#xff1a;python format 用法详解 前序&#xff1a;format是python2.6新增的一个格式化字符串的方法&#xff0c;相对于老版的%格式方法&#xff0c;它有很多优点&#xff1a; 不需要理会数据类型的问题&#xff0c;在%方法中%s只能替代字符串类型单个参数可…

C语言中fopen的详细用法

fopen是C语言中用于打开文件的函数&#xff0c;其原型为&#xff1a; FILE *fopen(const char *filename, const char *mode); 其中&#xff0c;filename是要打开的文件名&#xff0c;mode是打开文件的模式。fopen函数返回一个指向FILE类型的指针&#xff0c;该指针指向打开的…