Linux C语言 文件操作
打开函数 fopen 的原型如下。
FILE * fopen(char *filename, char *mode);
返回值:打开成功,返回该文件对应的 FILE 类型的指针;打开失败,返回 NULL。
模式 | 含 义 | 说 明 |
---|---|---|
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@ 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, , SEEK_SET); //文件头
fprintf(fp, "%s\n", "This the file begin");
fseek(fp, , 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
Linux C语言 文件操作的更多相关文章
- go语言文件操作,这期资料比较详细( 欢迎加入go语言群: 218160862 )
go语言文件操作,这期资料比较详细 欢迎加入go语言群: go语言深圳群 golang深圳 218160862 点击加入 文件操作 func Open(name string) (file *File ...
- C 语言文件操作
C 语言文件操作 1. 数据流: 程序与数据的交互以流的形式进行.fopen 即打开数据流,fclose 即刷新数据流. 所谓数据流,是一种抽象,表示这段数据像流一样,需要逐步接收,不 ...
- C语言文件操作函数
C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * str ...
- C语言文件操作函数大全(超详细)
C语言文件操作函数大全(超详细) 作者: 字体:[增加 减小] 类型:转载 本篇文章是对C语言中的文件操作函数进行了详细的总结分析,需要的朋友参考下 fopen(打开文件)相关函数 open,fc ...
- C语言文件操作 FILE结构体
内存中的数据都是暂时的,当程序结束时,它们都将丢失.为了永久性的保存大量的数据,C语言提供了对文件的操作. 1.文件和流 C将每个文件简单地作为顺序字节流(如下图).每个文件用文件结束符结束,或者在特 ...
- C语言文件操作
C语言文件操作,以下以基本的例子和说明来展开怎么通过C语言来进行文件操作. 操作文件,我们得需要知道什么?当然是路径和文件名. 首先我需要知道我操作的文件在哪里,叫什么名字.在C语言中还存在一个打开方 ...
- C语言文件操作解析(五)之EOF解析(转载)
C语言文件操作解析(五)之EOF解析 在C语言中,有个符号大家都应该很熟悉,那就是EOF(End of File),即文件结束符.但是很多时候对这个理解并不是很清楚,导致在写代码的时候经常出错,特 ...
- 【转】C语言文件操作解析(三)
原文网址:http://www.cnblogs.com/dolphin0520/archive/2011/10/07/2200454.html C语言文件操作解析(三) 在前面已经讨论了文件打开操作, ...
- 3)Linux程序设计入门--文件操作
)Linux程序设计入门--文件操作 Linux下文件的操作 前言: 我们在这一节将要讨论linux下文件操作的各个函数. 文件的创建和读写 文件的各个属性 目录文件的操作 管道文件 .文件的创建和读 ...
随机推荐
- JavaScript实现计算后缀表达式(逆波兰表达式)以及将中缀表达式转为后缀表达式
逆波兰表达式,它的语法规定,表达式必须以逆波兰表达式的方式给出.逆波兰表达式又叫做后缀表达式.这个知识点在数据结构和编译原理这两门课程中都有介绍,下面是一些例子: 正常的表达式 逆波兰表达式 a+b ...
- 集智学院 “Deep X:Deep Learning with Deep Knowledge”的公开讲座---总结
人工智能旨在了解人类智能的本质,并创造出能模仿人类智能做出反应的智能机器,目前在一些领域已经取得显著的成功,如AI玩游戏.问答系统.自动驾驶.无人机.机器人.翻译.人脸识别.语音识别等领域.深度学习的 ...
- k8s系列---stateful(有状态应用副本集)控制器
http://blog.itpub.net/28916011/viewspace-2215046/ 在应用程序中,可以分为有状态应用和无状态应用. 无状态的应用更关注于群体,任何一个成员都可以被取代. ...
- KNN和K-Means算法
一.KNN算法 1.KNN算法介绍 https://wizardforcel.gitbooks.io/dm-algo-top10/content/knn.html 2.KNN算法例子 import n ...
- 如何通过adb command 完成自动SD卡升级?
如何通过adb command 完成自动SD卡升级? 原创 2014年09月09日 10:50:57 2746 通过adb 命令的方式,免去了按powerkey+volumeup进入menu sele ...
- C语言快速排序函数------qsort();
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> ty ...
- C# bubble sort,selection sort,insertion sort
static void Main(string[] args) { InsertionSortDemo(); Console.ReadLine(); } static void InsertionSo ...
- golang单元测试简述
Golang中内置了对单元测试的支持,不需要像Java一样引入第三方Jar才能进行测试,下面将分别介绍Golang所支持的几种测试: 一.测试类型 Golang中单元测试有功能测试.基准测试. ...
- Sap Hana 关于BP的一些理解
BP里面有角色和角色分组,角色分组相当于包含多个角色. 客户和供应商使用不同的角色来创建. 创建角色和分组前可以创建自定义的角色类别和角色分组类别. 文档:关于BP.note 链接:笔记 作者:明光烁 ...
- Linux系统开机显示BusyBox v1.22.1 built-in shell(ash) 解决方法
BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件.BusyBox 包含了一些简单的工具,例如ls.cat和echo等等,还包含了一些更大.更复杂的工具,例grep.find.mou ...