函数功能: 打开一个文件

函数原型:FILE * fopen(const char * path,const char * mode);

相关函数:open,fclose,fopen_s,_wfopen

所需库: <stdio.h>

返回值: 文件顺利打开后,指向该流的文件指针就会被返回。若果文件打开失败则返回NULL,并把错误代码存在errno 中。

  一般而言,打开文件后会作一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以在fopen()后请作错误判断及处理。

参数说明:

  参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。

  mode有下列几种形态字符串:

  •   r:打开只读文件,该文件必须存在。
  •   r+:打开可读写的文件,该文件必须存在。
  •   rb+:读写打开一个二进制文件,只允许读写数据。
  •   rt+:读写打开一个文本文件,允许读和写。
  •   w:打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
  •   w+:打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
  •   a:以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
  •   a+:以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
  •   wb:只写打开或新建一个二进制文件;只允许写数据。
  •   wb+:读写打开或建立一个二进制文件,允许读和写。
  •   wt+:读写打开或着建立一个文本文件;允许读写。
  •   at+:读写打开一个文本文件,允许读或在文本末追加数据。
  •   ab+:读写打开一个二进制文件,允许读或在文件末追加数据。

  上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。由fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask 值。

  有些C编译系统可能不完全提供所有这些功能,有的C版本不用"r+","w+","a+",而用"rw","wr","ar"等,读者注意所用系统的规定。

文件标识位的区别r、r+、w、w+等相关推荐

  1. python文件读取模式_day-2 python 文件读写模式r,r+,w,w+,a,a+的区别

    r+和w+都是可读可写,区别在于r+读文件时,不会覆盖之前的内容,之前的内容能够读出来:w+读时,会覆盖之前的内容:所以读文件时,用r或者r+ #读操作 r 1 filepath = 'aa.log' ...

  2. python 文件读写with open模式r,r+ w,w+ a,a+区别详解

    python 文件读写with open模式r,r+ w,w+ a,a+区别详解 python中的 with open主要要来进行文件读写的操作 在 Python 中使用文件的关键函数是 open() ...

  3. python中w和wb区别_一篇搞懂python文件讀寫操作(r/r+/rb/w/w+/wb/a/a+/ab)

    關於文件操作的幾種常用方式,網上已有很多解說,內容很豐富,但也因此有些雜亂復雜.今天,我就以我個人的學習經驗寫一篇詳細又易懂的總結文章,希望大家看完之后會有所收獲. 一.各模式逐個分解 'r':只讀. ...

  4. python文件读写r+_python文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)

    一.常用 'r':只读.该文件必须已存在. 'r+':可读可写.该文件必须已存在,写为追加在文件内容末尾. 'rb':表示以二进制方式读取文件.该文件必须已存在. 'w':只写.打开即默认创建一个新文 ...

  5. fopen与读写的标识r,r+,rb+,rt+,w+.....

    函数简介 函数功能: 打开一个文件 函数原型:FILE * fopen(const char * path,const char * mode); 相关函数:open,fclose,fopen_s[1 ...

  6. python文件读写原理的一些理解:r,r+,w,w+,a,a+,以及seek()方法

    理解文件中的读取或者写入顺序要先知道对文件进行读写时它的工作模式:在python中对文件进行读写时,是依据文件中光标的位置进行读写的. 这里就要引入seek()方法: seek(offset, whe ...

  7. Python中‘r‘,‘r+‘,‘w‘,‘w+‘,‘a‘,‘a+‘区别总结

    "r" (read):只读 .必须打开一个已有的文件,且只能执行读操作. "r+": 读+写.与 "r" 类似也是必须打开一个已有的文件.读 ...

  8. 只不过是R.java文件的特性-----出错信息:R.java was modified manually! Reverting to generated version!...

    出错信息:R.java was modified manually! Reverting to generated version! 出错原因:今天在res下建立了一个drawable的文件夹存放图片 ...

  9. 【Android 逆向】Android 进程注入工具开发 ( 远程进程 注入动态库 文件操作 | Android 进程读取文件所需的权限 | fopen 打开文件标志位 | 验证文件权限 )

    文章目录 前言 一.Android 进程读取文件所需的权限 二.fopen 打开文件标志位 三.验证文件权限 前言 一.Android 进程读取文件所需的权限 通过 注入工具 , 将 libbridg ...

最新文章

  1. BCH或将在年底超越ETH
  2. 在计算机技术中描述信息最小单位是,计算机二级考试单选题
  3. 模糊数学笔记:五、模糊聚类
  4. 获取Http协议的请求行,请求头
  5. 简历上的“熟练掌握 RPC”,到底是个什么水平?
  6. Swiper(Swiper master)是目前应用较广泛的移动端网页触摸内容滑动js插件
  7. ASP.NET 开源导入导出库Magicodes.IE 导出Pdf教程
  8. *多叉树的树形背包常见建模方法
  9. 【图像处理】MATLAB:基本原理
  10. UI-148xLE-M相机参数
  11. 据说被称为世上最经典的25句话!
  12. OSG仿真案例(2)
  13. Flutter进阶第10篇: 本地存储,封装本地存储类,实现最简单的状态管理
  14. 三菱q系列c语言模块,【重磅干货】三菱Q系列串口模块QJ71C24的Modbus通信
  15. 八个经典的java多线程编程题目
  16. 早起的奇迹:那些能够在早晨8:00前改变人生的秘密
  17. java barchart类,JavaFX BarChart条形图颜色
  18. Spring 漏洞及其修复方案
  19. HTML5 + Canvas + 广度优先搜索(BFS) 编写lol连连看
  20. js连接蓝牙打印机打印一维码和二维码

热门文章

  1. 本地数据仓库项目(一) —— 本地数仓搭建详细流程
  2. Ubuntu22.04TLS插入3.5mm耳机没有声音
  3. 在 Mac 上使用多点触控手势
  4. 计算机求等级值的计算,2015年计算机一级MS OFFICE等级考试计算题
  5. SciChart_V6.最新的图表控件发布了!
  6. 2022年全球市场预混鸡尾酒总体规模、主要生产商、主要地区、产品和应用细分研究报告
  7. 亲手搭建vue项目的过程--Module build failed: Unknown word,无法读取css文件
  8. 预览word,excel,ppt,pdf、图片————使用vue实现
  9. dell笔记本电脑win7系统无法连接wifi6路由器的解决办法
  10. 优漫动游平面设计培训包含什么,平面设计培训内容有哪些?