打开函数 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

Linux C语言 文件操作相关推荐

  1. linux下c语言读写文件操作,Linux C语言 文件操作

    打开函数 fopen 的原型如下. FILE * fopen(char *filename, char *mode); 返回值:打开成功,返回该文件对应的 FILE 类型的指针:打开失败,返回 NUL ...

  2. 【Linux】基础IO-回顾C语言文件操作

    文章目录 回顾C语言文件操作 打开方式: 写文件 读文件 C++风格的文件读写 关于三个流 什么是当前路径 回顾C语言文件操作 C语言的文件操作如下: 文件操作函数 功能 fopen 打开文件 fcl ...

  3. C语言文件操作解析(二)

    C语言文件操作解析(二) C语言中对文件进行操作必须首先打开文件,打开文件主要涉及到fopen函数.fopen函数的原型为 FILE* fopen(const char *path,const cha ...

  4. C语言文件操作函数大全(看到总结的真的很好,就转载贡献给大家了)

    C语言文件操作函数大全 clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * st ...

  5. 基于存储的C语言文件操作常规问题分析(文本文件与二进制文件)

    基于存储的C语言文件操作常规问题分析(文本文件与二进制文件) 问题描述 文本文件与二进制文件 数据写入文本乱码问题 fopen和open 流式文件操作常用函数 直接I/O文件操作常用函数 问题描述 我 ...

  6. C语言文件操作解析(二)【转载】

    http://www.cnblogs.com/dolphin0520/archive/2011/10/05/2199598.html C语言文件操作解析(二) C语言中对文件进行操作必须首先打开文件, ...

  7. Linux下对文件操作时出现乱码怎么办?

    Linux下对文件操作经常会遇见乱码问题,我在网上搜了一些解决方法,希望能对大家有所帮助. 如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中 ...

  8. c语言计算文件摘要值,c语言文件操作摘要.ppt

    c语言文件操作摘要 第十章 文件 10.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件处理方法 缓冲文件系统:高级文件系统,系统自动为正在使用的文件开辟内存缓冲区 非 ...

  9. C语言文件操作解析(一)

    C语言文件操作解析(一) 在讨论C语言文件操作之前,先了解一下与文件相关的东西. 一.文本文件和二进制文件 文本文件的定义:由若干行字符构成的计算机文件,存在于计算机系统中.文本文件只能存储文件中的有 ...

最新文章

  1. KeyError: 报错_python系列学习笔记
  2. P7444-「EZEC-7」猜排列【dp】
  3. 签入在服务器上之后,别人获取了,在解决方案资源管理器中找不到。
  4. 硬质合金销售真的有那么难么?
  5. 【英语学习】【Level 08】U01 Let's Read L2 Of fairies and princesses
  6. ORACLE ERP 的前世今生(1)
  7. Qtum DGP 分布自治协议技术详解
  8. 最新投影圣经投影赞美诗歌圣经诗歌2020
  9. php 批量导入表格,织梦dedecms批量导入excel表文章内容插件
  10. 2021年6月编程语言排行来了!!
  11. windows下使用精灵标注图片
  12. 我们游戏后台架构学习
  13. 【项目排期】测试排期问题思考
  14. 云端新增长,混合云融合发展新路径 | 云端会客厅第28期精彩回顾
  15. 【自动化测试】自动化测试框架那些事儿
  16. Win7不激活会怎么样 Win7可以不用激活吗
  17. 【使用C++开发MCU】02-IIC实例之读取温度
  18. C语言大作业小学生数学检测系统,小学数学测试系统C语言设计.doc
  19. 河北北方学院专接本计算机,接本院校介绍——河北北方学院
  20. 基于小波变换编码的纹理图像分割

热门文章

  1. STM32项目(六)—— 中文电子捡货标签
  2. elasticsearch mongodb mysql_Elasticsearch 与 Mongodb 数据同步问题
  3. 【Pytorch神经网络基础理论篇】 02 pytorch环境的安装
  4. java swing进度条_Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)
  5. LeetCode 1713. 得到子序列的最少操作次数(最长上升子序DP nlogn)
  6. LeetCode 152. 乘积最大子序列(DP)
  7. 多线程的全局变量与局部变量
  8. 元类及创建元类的方法(面试用
  9. python中的面向对象:类与对象(重点!!!)
  10. 知识图谱入门知识(五)【转】秒懂词向量Word2Vec的本质