问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言中的fopen函数的具体实现是怎么样?

发布网友 发布时间:2022-04-28 12:13

我来回答

3个回答

热心网友 时间:2023-10-09 00:12

fopen(a,b),意思是打开一个文件名字为a的文件

热心网友 时间:2023-10-09 00:12

lib库,没得源代码,很可能是汇编的代码。

热心网友 时间:2023-10-09 00:13

函数简介  函数功能:打开一个文件
  函数原型:FILE * fopen(const char * path,const char * mode);
  相关函数:open,fclose,fopen_s[1],_wfopen
  所需库:<stdio.h>
  返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。
  一般而言,打开文件后会作一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()后作错误判断及处理。
  参数说明:
  参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。
  mode有下列几种形态字符串:
  r 以只读方式打开文件,该文件必须存在。
  r+ 以可读写方式打开文件,该文件必须存在。
  rb+ 读写打开一个二进制文件,允许读数据。
  rw+ 读写打开一个文本文件,允许读和写。
  w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
  w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
  a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
  a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
  wb 只写打开或新建一个二进制文件;只允许写数据。
  wb+ 读写打开或建立一个二进制文件,允许读和写。
  ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
  at+ 打开一个叫string的文件,a表示append,就是说写入处理的时候是接着原来文件已有内容写入,不是从头写入覆盖掉,t表示打开文件的类型是文本文件,+号表示对文件既可以读也可以写。
  上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库以二进制模式打开文件。如果不加b,表示默认加了t,即rt,wt,其中t表示以文本模式打开文件。由fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask 值。
  有些C编译系统可能不完全提供所有这些功能,有的C版本不用"r+","w+","a+",而用"rw","wr","ar"等,读者注意所用系统的规定。追问想问它的底层实现。

参考资料:http://ke.baidu.com/view/656681.htm

热心网友 时间:2023-10-09 00:12

fopen(a,b),意思是打开一个文件名字为a的文件

热心网友 时间:2023-10-09 00:12

lib库,没得源代码,很可能是汇编的代码。

热心网友 时间:2023-10-09 00:13

函数简介  函数功能:打开一个文件
  函数原型:FILE * fopen(const char * path,const char * mode);
  相关函数:open,fclose,fopen_s[1],_wfopen
  所需库:<stdio.h>
  返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。
  一般而言,打开文件后会作一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()后作错误判断及处理。
  参数说明:
  参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。
  mode有下列几种形态字符串:
  r 以只读方式打开文件,该文件必须存在。
  r+ 以可读写方式打开文件,该文件必须存在。
  rb+ 读写打开一个二进制文件,允许读数据。
  rw+ 读写打开一个文本文件,允许读和写。
  w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
  w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
  a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
  a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
  wb 只写打开或新建一个二进制文件;只允许写数据。
  wb+ 读写打开或建立一个二进制文件,允许读和写。
  ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
  at+ 打开一个叫string的文件,a表示append,就是说写入处理的时候是接着原来文件已有内容写入,不是从头写入覆盖掉,t表示打开文件的类型是文本文件,+号表示对文件既可以读也可以写。
  上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库以二进制模式打开文件。如果不加b,表示默认加了t,即rt,wt,其中t表示以文本模式打开文件。由fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask 值。
  有些C编译系统可能不完全提供所有这些功能,有的C版本不用"r+","w+","a+",而用"rw","wr","ar"等,读者注意所用系统的规定。追问想问它的底层实现。

参考资料:http://ke.baidu.com/view/656681.htm

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
口腔临床医学考研考什么学校好 口腔临床英语会话集目录 牡蛎长什么样 牡蛎什么样 感慨生命离世的句子 感慨生命离世的句子有哪些 沙漏茶壶应用特点 写字楼隔断的装修有哪些要求 搏击比赛如果放开对攻击裆部的限制,那么对于无差比赛来说,对小级别有... 如果允许击打裆部,那么是不是动作快的打架就很厉害? 求好看的神魔类动漫~~ 不求多但求精!!! 关于C语言中的fopen()函数 c语言fopen函数不能正常运行? c语言fopen函数打不开文件 c语言 fopen函数真的不安全吗 Linux系统下C语言fopen函数几个小问题 C语言 fopen()函数的mode取值“r”和“w”时,它们之间的差别是? C语言中 fp = fopen(filename, “rb”); 那个rb是什么意思啊 202010.15日,家庭装修可以开工吗? 搬家看日子怎么看2020年10月? 2020年10月27日日子好不好 2020年10日4日结婚冲狗什么意思? 2020年10月27日子好不好 老黄历温锅吉日? 黄历2020年10月结婚黄道吉日 农历2020年10月的子日是几号? 2020年10月入宅黄道吉日 长城钻探托福考试。急急在线等 求中石油老托福复习资料 我今年要参见中石油的模拟托福考试 不知道哪位考过的知道怎么评分吗?中石油的阅读是50个 但老托福的是60 请问中石油的托福考试是怎样的啊,谢谢了啊! 外地车牌在杭州市区怎么样可以进限行区域吗? 外牌进杭州市区怎么申请 进入杭州市外地车牌怎么限行怎么办 外地车牌能进杭州市区吗 杭州外地车牌怎么限行? 杭州非浙A急事通怎么申请 外地大客车在杭州限行规定 十月十四号去杭州,外地车牌可以进市区吗 外地车进杭12次怎么办 2019杭州外地车限行区域图 杭州尾号限号已经申请了急事通可以通行吗 杭州浙a急事通怎么申请 外地车辆到杭州怎么限行 非浙a急事通可以进西湖景区吗? 杭州星期六,星期天外地车能上高架吗? 非浙a急事通还限号吗 杭州市每日限行时间是几点到几点? C语言进制数 C语言中16进制的表示方法? c语言中的进制怎么看 C语言 进制数