当前位置: 首页 > news >正文

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

目录

1.fopen函数

2.fclose函数

3.fopen函数和fclose实战


1.fopen函数

fopen fwrite fread fclose ...属于标准C库

include <stdio.h> standard io lib

open close write read 属于Linux系统调用

可移植型:fopen > open(open函数只在嵌入式平台中才可以使用,不可跨平台)

 fopen在用户态是缓存的

open在用户态是没有缓存的

打开一个文件,返回指向该文件的指针

函数原型

FILE * fopen(constchar *path , cost char *mode)
/*
* @description : 打开一个文件
* @param ‐ path : 指定文件路径,如:"./test.txt"
* @param ‐ mode :指定文件的打开方式,如下图:
* @return : 成功,返回指向该文件的文件指针; 若失败,返回 NULL
*/
注:终端输入 man fopen 即可查看函数
参数说明:第一个参数为欲打开文件的文件路径及文件名,第二个参数表示对文件的打开方式

mode有以下值:

  • r:只读方式打开,文件必须存在
  • r+:可读写,文件必须存在
  • rb+:打开二进制文件,可以读写
  • rt+:打开文本文件,可读写
  • w:只写,文件存在则文件长度清0,文件不存在则建立该文件
  • w+:可读写,文件存在则文件长度清0,文件不存在则建立该文件
  • a:附加方式打开只写,不存在建立该文件,存在写入的数据加到文件尾,EOF符保留
  • a+:附加方式打开可读写,不存在建立该文件,存在写入的数据加到文件尾,EOF符不保留
  • wb:打开二进制文件,只写 wb+:打开或建立二进制文件,可读写
  • wt+:打开或建立文本文件,可读写
  • t+:打开文本文件,可读写,写的数据加在文本末尾 ab+:打开二进制文件,可读写,写的数据加在文件末尾

由mode字符可知,上述如r、w、a在其后都可以加一个b,表示以二进制形式打开文件

返回值:

文件打开了,返回一个指向该打开文件的指针(FILE结构);文件打开失败,错误上存errorcode(错误代码)。

注意:在fopen操作后要进行判断,是否文件打开,文件真正打开了才能进行后面的读或写操作,如有错误要进行错误处理。

例如:

FILE *pfile=fopen(constchar *filename,"rb");

2.fclose函数

关闭一个文件流,使用fclose就可以把缓冲区内最后剩余的数据输出到磁盘文件中,并释放文件指针和有关的缓冲区

函数原型:

int fclose(FILE*stream)
/*
* @description :关闭一个已打开的流
* @param ‐ stream :文件指针(流)
* @return : 成功,返回0; 若失败,返回EOF
*/

3.fopen函数和fclose实战

  1. 创建demo2.c 文件
  2. 实战成功

代码:

#include <stdio.h>
int main()
{FILE *fp = NULL;int nRet = 0;fp = fopen("mm","w");if(fp == NULL){printf("open failed!\n");return -1;}printf("open success1\n");nRet = fclose(fp);if(nRet != 0){printf("close failed!\n");return -2;}printf("close success1\n");return 0;
}

 

相关文章:

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

目录 1.fopen函数 2.fclose函数 3.fopen函数和fclose实战 1.fopen函数 fopen fwrite fread fclose ...属于标准C库 include <stdio.h> standard io lib open close write read 属于Linux系统调用 可移植型&#xff1a;fopen > open&#xff08;open函数只在嵌入…...

轨迹预测算法vectorNet调研报告

前言 传统的行为预测方法是规则的&#xff0c;基于道路结构的约束生成多个行为假设。最近&#xff0c;很多基于学习的预测方法被提出。他们提出了对于不同行为假设的进行概率解释的好处&#xff0c;但是需要重构一个新的表示来编码地图和轨迹信息。有趣的是&#xff0c;虽然高精…...

基于STM32设计的避障寻迹小车

一、前言 1.1 项目背景 根据美国玩具协会在一项研究中&#xff0c;过去几年全球玩具销售增长与GDP的世界平均水平大致相同。但全球玩具市场的内部结构已经占据了巨大的位置变化&#xff1a;传统玩具的市场份额正在下降&#xff0c;高科技电子玩具正在蓬勃发展。全球玩具市场的…...

【视觉检测】使用opencv编写一个图片缺陷检测流程

1. 导入必要的库&#xff0c;如OpenCV&#xff0c;NumPy等。 2. 使用OpenCV读取图像&#xff0c;并将其转换为灰度图像。 3. 使用OpenCV的Canny边缘检测算法检测图像中的边缘。 4. 使用OpenCV的Hough变换算法检测图像中的线条。 5. 使用OpenCV的模板匹配算法检测图像中的缺…...

3.Dockerfile 定制镜像

3. Dockerfile 定制镜像 从上一节的docker commit的学习中&#xff0c;我们可以了解到&#xff0c;镜像的定制实际上就是定制每一层所添加的配置、文件等信息&#xff0c;但是命令毕竟只是命令&#xff0c;每次定制都得去重复执行这个命令&#xff0c;而且还不够直观&#xff…...

Web基础与HTTP协议

Web基础与HTTP协议一、Web基础与HTTP概述1、域名概念二、域名服务与域名注册1、域名定义2、域名服务三、网页访问&#xff08;http、https&#xff09;1、网页概述2、网页的基本标签四、Web1、Web概述2、Web1.0 Web2.0五、HTTP协议概述1、HTTP协议简介2、HTTP协议请求总结一、W…...

【化学试剂】endo-BCN-PEG4-Pomalidomide,(1R,8S,9S)-双环[6.1.0]壬-四聚乙二醇-泊马度胺纯度95%+

一、基础产品数据&#xff08;Basic Product Data&#xff09;&#xff1a;CAS号&#xff1a;N/A中文名&#xff1a;(1R,8S,9S)-双环[6.1.0]壬-四聚乙二醇-泊马度胺英文名&#xff1a;endo-BCN-PEG4-Pomalidomide二、详细产品数据&#xff08;Detailed Product Data&#xff09…...

全板电镀与图形电镀,到底有什么区别?

衔接上文&#xff0c;继续为朋友们分享普通单双面板的生产工艺流程。 如图&#xff0c;第四道主流程为电镀。 电镀的目的为&#xff1a; 适当地加厚孔内与板面的铜厚&#xff0c;使孔金属化&#xff0c;从而实现层间互连。 至于其子流程&#xff0c;可以说是非常简单&#x…...

Zabbix 构建监控告警平台(二)--

Apache监控示例&#xff08;图形监控&#xff09;模板TemplateZabbix Items 1.Apache监控示例&#xff08;图形监控&#xff09; 1.1创建主机组 在“配置”->“主机群组”->“创建主机群组” 填入组名“webserver_test” 创建完成之后可以在“配置”->"主机群组&…...

开学季,关于校园防诈骗宣传,如何组织一场微信线上答题考试

开学季&#xff0c;关于校园防诈骗宣传&#xff0c;如何组织一场微信线上答题考试如何组织一场微信线上答题考试在线考试是一种非常节约成本的考试方式&#xff0c;考生通过微信扫码即可参加培训考试&#xff0c;不受时间、空间的限制&#xff0c;近几年越来越受企事业单位以及…...

蓝牙单点技术实现路径介绍

本文主要介绍蓝牙设备与手机一对一相连的 蓝牙单点 技术。 准备工作 系统要求&#xff1a;蓝牙使用需要安卓 4.3 以及以上版本&#xff0c;智能生活 App SDK 从安卓 4.4 开始支持。Manifest 权限&#xff1a; <uses-permission android:name"android.permission.ACCE…...

Ubuntu22.04 用 `hwclock` 或 `timedatectl` 来设置RTC硬件时钟为本地时区

Ubuntu22.04用 hwclock 或 timedatectl 来设置硬件时区为本地时区 可以用hwclock命令 sudo hwclock --localtime --systohc&#x1f446;效果等同&#x1f447; , --localtime的简写是-l ; --systohc的简写是-w sudo hwclock -l -w也可以用timedatectl命令 &#x1f446;效果…...

Node=>Express路由 学习2

1.概念 Express路由指的是客户端的请求与服务器处理函数之间的映射关系 Express路由由三部分组成 请求类型 请求URL地址 处理函数 app.METHOD ( PATH , HANDLER )根据定义的先后顺序进行匹配 请求类型和请求的URl同时匹配成功才会调用相应的处理函数 简单用法 2.模块化路由 为了…...

Android 面试三部曲——你做到了几点?

今天的干货来点轻松一点的&#xff0c;这次的分享是《面试需要哪些准备&#xff1f;》&#xff0c;主要分为三个部分&#xff1a; 面试前。面试中。面试后。 面试前 1、『工作经验中的职位要层层递进&#xff1a;初、中、高、资深级』&#x1f352; 2.投简历 你的简历必须要…...

windeployqt实现一键打包

每次发布QT程序前,都必须要在命令行环境下运行windeployqt 工具进行打包,加载相关的lib文件,才能正常运行。但是在命令行模式下,每次都要手动输入windeployqt的目录,和应用程序的位置目录,效率非常低,见下图: 那QT有没有什么好用的工具可以避免这个问题呢,认真找了一下…...

ESP32S3系列--SPI主机驱动详解(二)

一、目的 在上一篇《ESP32S3系列--SPI主机驱动详解(一)》我们介绍了ESP32S3的SPI外设的基本情况以及主机驱动的一些知识点,包括主机驱动的特点、总线的初始化、从设备的加入、传输模式分类等等。 本篇我们将从代码角度帮助大家进一步理解传输接口的一些细节问题。 二、实战 …...

51单片机15单片机 时钟芯片DS1302【更新中】

前言 现在流行的串行时钟电路很多&#xff0c;如DS1302、 DS1307、PCF8485等。这些电路的接口简单、价格低廉、使用方便&#xff0c;被广泛地采用。 本文介绍的实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路主要特点是采用串行数据传输&#xff0c;可为掉电…...

SaleSmartly(ss客服)带你了解:缩短B2B销售周期的秘诀

缩短B2B销售周期的秘诀&#xff1a;即时聊天 关键词&#xff1a;B2B 销售&#xff1b;即时沟通&#xff1b;SaleSmartly&#xff08;ss客服&#xff09; 在B2B销售中&#xff0c;时间就是一切。在某些情况下&#xff0c;买家正在积极寻找即时解决方案&#xff0c;潜在客户以多种…...

九龙证券|A股苏州板块迎来“200+”里程碑

2月10日&#xff0c;跟着裕太微登陆科创板&#xff0c;A股“姑苏板块”正式迎来第201位成员。姑苏也成为继京、沪、深、杭之后&#xff0c;第5个具有A股上市公司总数超越200家的城市。 现在&#xff0c;姑苏不仅生长为位居全国前列的“制作之都”&#xff0c;更成为资本市场高地…...

vcruntime140_1.dll无法继续执行代码,怎么解决这种问题?

经常使用电脑的人&#xff0c;可能对于这个弹出框应该不陌生&#xff0c;“vcruntime140_1.dll无法继续执行代码”&#xff0c;其实会出现这种情况&#xff0c;主要是因为缺少一个动态链接库 (DLL) 文件导致的。这个文件是 Visual C 2015 库的一部分&#xff0c;某些程序需要这…...

正大国际期货:外盘震荡行情的特征及突破信号的确立

投机市场上&#xff0c;趋势交易应该是交易操作理念的灵魂和核心&#xff1b;能够顺应大的趋势&#xff0c;交易将变得简单&#xff0c;也更容易赚到钱。下面正大IxxxuanI详细来给大家讲讲 投资市场是由千万个交易个体所组成的复杂系统&#xff0c;走势具有不确定性&#xff0…...

【ESP 保姆级教程】玩转emqx数据集成篇④ ——数据桥接之HTTP服务

忘记过去,超越自己 ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2023-02-10 ❤️❤️ 本篇更新记录 2023-02-10 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言📝🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请…...

蓝桥杯算法训练合集十三 1.P06022.P07033.逗志芃的危机4.唯一的小可爱5.JOE的矩阵

目录 1.P0602 2.P0703 3.逗志芃的危机 4.唯一的傻子 5.JOE的矩阵 1.P0602 问题描述 编写一个程序&#xff0c;输入一个4位的自然数&#xff0c;将组成该数的各位数字重新排列&#xff0c;形成一个最大数和一个最小数&#xff0c;之后用最大数减去最小数&#xff0c;得到一…...

切换分支报错:Untracked Files Prevent Checkout

切换分支报错&#xff1a;Untracked Files Prevent Checkoutgit分支切换 Untracked Files Prevent Checkout本人解决办法&#xff1a;git分支切换 Untracked Files Prevent Checkout 新起的项目在切换master分支到工作分支时&#xff0c;出现下图的问题&#xff1a; Untracked…...

endo-BCN-PEG4-Palmitic,环丙烷环辛炔四聚乙二醇-Palmitic包装灵活

endo-BCN-PEG4-Palmitic&#xff0c;endo环丙烷环辛炔四聚乙二醇-Palmitic反应特点&#xff1a;endo-BCN-PEG4-Palmitic 酯在其末端含有一个 Palmitic基和一个 BCN 基。对点击试剂来说同样会通过不同的小分子PEG进行连接&#xff0c;BCN-PEG-acid、BCN-PEG-NHS ester、BCN-PEG-…...

多传感器融合定位十一-基于滤波的融合方法Ⅱ

多传感器融合定位十一-基于滤波的融合方法Ⅱ1. 编码器运动模型及标定1.1 编码器基础知识1.2 编码器运动模型1.2.1 旋转半径求解1.2.2 角速度求解1.2.3 线速度求解1.2.4 位姿求解1.3 编码器的标定1.3.1 轮子半径标定1.3.2 轮子与底盘中心距离标定2. 融合编码器的滤波方法2.1 核心…...

JAVA使用poi解析execl解决数值被转为科学计数法(如:手机号、身份证号、电话、等)解决方法

1、原由 大家都知道数字在EXCEL表格中存储时有两种表现形式。1.数字作为数值存储。当数字作为数值存储时&#xff0c;单元格中的数字可以参与数学运算。2.数字作为文本存储。当数字作为文本存储时,单元格中的数值不能够参与数学运算。 数字作为文本存储时&#xff0c;如果没有更…...

hive中substring_index()的使用

substring_index(str,delim,count)str:要处理的字符串delim:分隔符count:计数例子&#xff1a;strwww.wikibt.comsubstring_index(str,.,1)结果是&#xff1a;wwwsubstring_index(str,.,2)结果是&#xff1a;www.wikibt如果count是正数&#xff0c;那么就是从左往右数&#xff…...

LocalDateTime设置时间的年、月、日、时、分、秒、纳秒

如何把String/Date转成LocalDateTime参考String、Date与LocalDate、LocalTime、LocalDateTime之间互转 String、Date、LocalDateTime、Calendar与时间戳之间互相转化参考String、Date、LocalDateTime、Calendar与时间戳之间互相转化 方法介绍 withYear(int year) 指定日期的…...

C语言rand和srand用法详解

在实际编程中&#xff0c;我们经常需要生成随机数&#xff0c;例如&#xff0c;贪吃蛇游戏中在随机的位置出现食物&#xff0c;扑克牌游戏中随机发牌。在C语言中&#xff0c;我们一般使用 <stdlib.h> 头文件中的 rand() 函数来生成随机数&#xff0c;它的用法为&#xff…...

微信公众号怎么创建内容/什么是优化师

Q&#xff1a;Mongodb数据服务有什么用&#xff1f; A&#xff1a;首先&#xff0c;Mongodb适合保存大量的非业务数据&#xff0c;因此&#xff0c;Adhesive框架提倡把不是非常重要的非业务数据&#xff08;比如应用程序信息中心的日志、异常、状态数据&#xff0c;又比如WCF扩…...

专用车网站建设/网络营销有哪些手段

一、设备节点及有关术语的含义 设备节点含义/dev/ttyS0、/dev/ttySAC0串口/dev/tty1、/dev/tty2、/dev/tty3、……虚拟终端设备节点/dev/tty0前台终端/dev/tty程序自己的终端&#xff0c;可能是串口、也可能是虚拟终端/dev/console控制台&#xff0c;又内核的cmdline参数确定 …...

个人作品网站链接怎么做/宁波seo网络推广定制多少钱

之前有些错误&#xff0c;所有代码均已校正1、/*输出9*9口诀。共9行9列&#xff0c;i控制行&#xff0c;j控制列。*/#include ​2、/*古典问题&#xff1a;有一对兔子&#xff0c;从出生后第3个月起每个月都生一对兔子&#xff0c;小兔子长到第三个月后每个月又生一对兔子&…...

如何解析到凡科建设的网站/国际新闻快报

// -------------------- UISlider (滑块控件 是一个滑杆 存放着一系列的值) // UISlider *slider [[UISlider alloc]initWithFrame:CGRectMake(30, 100, 300, 30)]; // 设置滑块的显示图片 [slider setThumbImage:[UIImage imageNamed:"1.png"] forSta…...

php网站制作教程/友情链接可以帮助店铺提高浏览量

官网&#xff1a;express 初始化&#xff1a;npm init -y安装&#xff1a;npm i -S express引包&#xff1a;var express require(express); app.js // 1. 引包 var express require(express);// 2. 创建你的服务器应用程序&#xff08;也就是原来的 http.createServer&…...

汽贸做网站有用处吗/大数据查询个人信息

SAP中有关差异的一些概念 2006年11月18日 23:11:00 JackWu 阅读数 6066 1.SAP关于成本的概念 2.差异的计算方法. 3.实际成本计算方法 4.SAP variance 1.成本的概念 标准成本标准价格 * 标准数量 作业价格 * 标准数量 计划成本计划价格 * 计划数量 作业价格 * 计划数量 …...