Linux C语言 文件操作

打开函数 fopen 的原型如下。

  FILE * fopen(char *filename, char *mode);

返回值:打开成功,返回该文件对应的 FILE 类型的指针;打开失败,返回 NULL。

表 2
模式含 义说 明
r只读文件必须存在,否则打开失败
w只写若文件存在,则清除原文件内容后写入;否则,新建文件后写入
a追加只写若文件存在,则位置指针移到文件末尾,在文件尾部追加写人,故该方式不 删除原文件数据;若文件不存在,则打开失败
r+读写文件必须存在。在只读 r 的基础上加 '+' 表示增加可写的功能。下同
w+读写新建一个文件,先向该文件中写人数据,然后可从该文件中读取数据
a+读写在” a”模式的基础上,增加可读功能
rb二进制读功能同模式”r”,区别:b表示以二进制模式打开。下同
wb二进制写功能同模式“w”。二进制模式
ab二进制追加功能同模式”a”。二进制模式
rb+二进制读写功能同模式"r+”。二进制模式
wb+二进制读写功能同模式”w+”。二进制模式
ab+二进制读写功能同模式”a+”。二进制模式

关闭函数 fclose 的原型如下。

  int fclose(FILE *fp);       // 函数参数:fp:已打开的文件指针。

返回值:正常关闭,返回否则返回 EOF(-1)。

 

文件格式化输出函数 fprintf 的函数原型为:所在头文件:<stdio.h>

  int fprintf (文件指针,格式控制串,输出表列);

函数功能:把输出表列中的数据按照指定的格式输出到文件中。

返回值:输出成功,返回输出的字符数;输出失败,返回一负数

#include <stdio.h>#define SUCCESS        1
#define FAIL        0
#define FILE_PARH    "/root/Desktop/data/new/"
#define FILE_NAME    FILE_PARH "test.text"int writFile()
{FILE *fp;fp = fopen(FILE_NAME, "w+");if (!fp){return FAIL;}fprintf(fp,"this is a test %s\n","- OK");fclose(fp);return SUCCESS;
}
int main(int argc, char* argv[])
{int iRes = SUCCESS;iRes = writFile();return iRes;
}运行结果:
[root@192 new]# cat ./test.text
this is a test - OK

 

C 语言程序中常使用 fseek 函数移动文件读写位置指针

  int fseek(FI:LE *fp, long offset, int origin);

函数功能:把文件读写指针调整到从 origin 基点开始偏移 offset 处,即把文件读写指针移动到 origin+offset 处。

基准位置 origin 有三种常量取值:SEEK_SET、SEEK_CUR 和 SEEK_END,取值依次为 0,1,2。

  SEEK_SET:文件开头,即第一个有效数据的起始位置。
  SEEK_CUR:当前位置。
  SEEK_END:文件结尾,即最后一个有效数据之后的位置。

#include <stdio.h>#define SUCCESS        1
#define FAIL        0
#define FILE_PARH    "/root/Desktop/data/new/"
#define FILE_NAME    FILE_PARH "a.text"int writeBeginFile()
{int iRes = SUCCESS;FILE *fp;fp = fopen(FILE_NAME, "w+");if (!fp){return FAIL;}fprintf(fp,"this is a test content %s\n","- OK");fprintf(fp,"this is a test content %s\n","- OK");fseek(fp, 0, SEEK_SET);    //文件头fprintf(fp, "%s\n", "This the file begin");fseek(fp, 0, SEEK_END);    //文件尾fprintf(fp, "%s\n", "This the file end");fclose(fp);return iRes;}int main(int argc, char* argv[])
{int iRes = SUCCESS;iRes = writeBeginFile();return iRes;
}
运行结果:

[root@192 new]# cat a.text
This the file begin
nt - OK
this is a test content - OK
This the file end

 

 

转载于:https://www.cnblogs.com/mingyue605/p/10587672.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多巴胺如何驱使我们克服复杂情况、逆境、情绪, 让我们掌控周遭的环境的

来源&#xff1a;本文摘自《贪婪的多巴胺》仅仅是“想要”很少能让你得到任何东西。你必须弄清楚如何获得它&#xff0c;以及它是否值得拥有。事实上&#xff0c;如果我们做事时不考虑怎么做和下一步做什么&#xff0c;失败甚至不是最坏的结果。结果可能从吃得有点儿多发展为不…

火爆股市的元宇宙,究竟关VR/AR什么事?

来源&#xff1a;VR每日必看VR设备被普遍认为是进出元宇宙的主要终端&#xff0c;据Wind数据&#xff0c;VR概念的上市公司包括歌尔股份、中科创达、欣旺达等55家公司。大洋彼岸的“蝴蝶”扇动翅膀&#xff0c;A股的元宇宙概念也火热起来。A股代表性企业中青宝已经连续两日“20…

2018-2019-2 网络对抗技术 20165301 Exp2 后门原理与实践

2018-2019-2 网络对抗技术 20165301 Exp2 后门原理与实践 实验内容 (1)使用netcat获取主机操作Shell&#xff0c;cron启动(2)使用socat获取主机操作Shell, 任务计划启动(3)使用MSF meterpreter&#xff08;或其他软件&#xff09;生成可执行文件&#xff0c;利用ncat或socat传送…

[Swift]LeetCode853. 车队 | Car Fleet

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号&#xff1a;山青咏芝&#xff08;shanqingyongzhi&#xff09;➤博客园地址&#xff1a;山青咏芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;➤GitHub地址&a…

世界机器人大会|人工智能VS人类

来源&#xff1a;新华社作者&#xff1a;北京邮电大学人工智能学院 刘伟配音&#xff1a;郑琬策划、终审&#xff1a;刘君校对&#xff1a;周雪晴2021世界机器人大会于9月10日至13日在北京召开&#xff0c;世界机器人博览会及世界机器人大赛将同期举办。其实&#xff0c;智能不…

LeetCode LCP 06. 拿硬币

题目&#xff1a;桌上有 n 堆力扣币&#xff0c;每堆的数量保存在数组 coins 中。我们每次可以选择任意一堆&#xff0c;拿走其中的一枚或者两枚&#xff0c;求拿完所有力扣币的最少次数。 示例 1&#xff1a; 输入&#xff1a;[4,2,1]输出&#xff1a;4解释&#xff1a;第一…

华为:憧憬6G,共同定义6G

来源&#xff1a;华为华为心声社区发布了由徐直军签发的总裁办电子邮件&#xff0c;邮件内容为徐直军为《6G无线通信新征程》一书作的序《憧憬6G&#xff0c;共同定义6G》。徐直军在文中表示&#xff0c;6G将在2030年左右投向市场&#xff0c;究竟市场将会迎来什么样的6G&#…

增量式爬虫(简易)

增量式爬虫引言&#xff1a; 当我们在浏览相关网页的时候会发现&#xff0c;某些网站定时会在原有网页数据的基础上更新一批数据&#xff0c;例如某电影网站会实时更新一批最近热门的电影。小说网站会根据作者创作的进度实时更新最新的章节数据等等。那么&#xff0c;类似的情景…

“中国诺奖”2021未来科学大奖公布:袁国勇、裴伟士、张杰、施敏获奖,总奖金300万美元...

来源&#xff1a;学术头条中国首个由科学家、企业家共同发起的民间公益组织颁发的世界级科学大奖——未来科学大奖&#xff0c;9 月 12 日正式揭晓 2021 年生命科学奖、物质科学奖、数学与计算机科学奖获奖名单。香港大学袁国勇、裴伟士获得生命科学奖。获奖理由&#xff1a;他…

实验二——函数重载,快速排序,类对象

函数重载&#xff1a; #include<iostream> using namespace std; struct complex{ double real; double imaginary; }; int add(int,int); double add(double,double); complex add(complex,complex); int main() { int a12,b13; double a22.0,b23.0; struct complex num…

LeetCode 771. 宝石与石头

题目&#xff1a; 给定字符串J 代表石头中宝石的类型&#xff0c;和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型&#xff0c;你想知道你拥有的石头中有多少是宝石。 J 中的字母不重复&#xff0c;J 和 S中的所有字符都是字母。字母区分大小写&#…

Python——类与对象,异常处理

类 1 class C1: 2 def setdata(self,value): 3 self.data value 4 def display(self): 5 print(self.data) 1 class C2(C1): //继承&#xff0c;2 def display(self): 3 print(C2:, self.data)…

【前沿技术】Facebook 硬件负责人,带摄像头的智能眼镜将在 10 年内成为常态

拍照功能将在十年内成为智能眼镜的标准配置来源&#xff1a;智能研究院在 Facebook 与 Luxottica 的首款智能眼镜合作产品 Ray-Ban Stories 发布后&#xff0c;Facebook 硬件业务负责人 Andrew Bosworth 周五在与 Essilor Luxottica 的首席可穿戴设备官 Rocco Basilico 交谈时表…

LeetCode 1431. 拥有最多糖果的孩子

题目&#xff1a;给你一个数组 candies 和一个整数 extraCandies &#xff0c;其中 candies[i] 代表第 i 个孩子拥有的糖果数目。 对每一个孩子&#xff0c;检查是否存在一种方案&#xff0c;将额外的 extraCandies 个糖果分配给孩子们之后&#xff0c;此孩子有 最多 的糖果。…

#leetcode刷题之路35-搜索插入位置

给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。 示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: …

9大领域50名青年学者获2021年科学探索奖,单人奖金300万元

来源&#xff1a;科学探索奖官网、科学网等9 月 13 日&#xff0c;2021 年科学探索奖获奖人名单公布&#xff0c;来自 9 个领域的 50 名青年科学家获奖。其中包括 8 名女性科学家&#xff0c;最年轻获奖者仅 32 岁。他们将在 5 年内获得总计 300 万元人民币的奖金&#xff0c;可…

ajax传递数组,后台接收为null解决方法

traditional:true,加上这个就好&#xff0c;默认为false,即允许深度序列化参数&#xff0c;但是servlet api不支持&#xff0c;所有设为true阻止就好了。 $.ajax({ type:post, url:/lst, async:true, data:{"arr_id":arr_id}, traditional:true, s…

多角度回顾因果推断的模型方法

来源&#xff1a;AI干货知识库推断因果关系&#xff0c;是人类思想史与科学史上的重要主题。现代因果推断的研究&#xff0c;始于约尔-辛普森悖论&#xff0c;经由鲁宾因果模型、随机试验等改进&#xff0c;到朱力亚珀尔的因果革命&#xff0c;如今因果科学与人工智能的结合正掀…

torchvision包的主要构成

torchvision包是服务于PyTorch深度学习框架的&#xff0c;主要用来构建计算机视觉模型。 torchvision 主要由以下几部分构成&#xff1a; torchvision.datasets&#xff1a;一些加载数据的函数及常用的数据集接口&#xff1b;torchvision.models&#xff1a;包含常用的模型结…

Eclipse+ADT+Android SDK 搭建安卓开发环境

要求&#xff1a;windows 7 基本操作。运行环境&#xff1a;windows 7(64位); eclipse-jee-luna-SR2-win32(32位);ADT-23.0.4 最近刚开始接触Android(安卓)嵌入式开发&#xff0c;首要问题是搭建Andoid开发环境&#xff0c;由于本人用的是windows7的笔记本&#xff0c;也就只能…