打开函数 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@ 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语言 文件操作的更多相关文章

  1. go语言文件操作,这期资料比较详细( 欢迎加入go语言群: 218160862 )

    go语言文件操作,这期资料比较详细 欢迎加入go语言群: go语言深圳群 golang深圳 218160862 点击加入 文件操作 func Open(name string) (file *File ...

  2. C 语言文件操作

    C 语言文件操作 1. 数据流:     程序与数据的交互以流的形式进行.fopen 即打开数据流,fclose 即刷新数据流.     所谓数据流,是一种抽象,表示这段数据像流一样,需要逐步接收,不 ...

  3. C语言文件操作函数

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

  4. C语言文件操作函数大全(超详细)

    C语言文件操作函数大全(超详细) 作者: 字体:[增加 减小] 类型:转载 本篇文章是对C语言中的文件操作函数进行了详细的总结分析,需要的朋友参考下   fopen(打开文件)相关函数 open,fc ...

  5. C语言文件操作 FILE结构体

    内存中的数据都是暂时的,当程序结束时,它们都将丢失.为了永久性的保存大量的数据,C语言提供了对文件的操作. 1.文件和流 C将每个文件简单地作为顺序字节流(如下图).每个文件用文件结束符结束,或者在特 ...

  6. C语言文件操作

    C语言文件操作,以下以基本的例子和说明来展开怎么通过C语言来进行文件操作. 操作文件,我们得需要知道什么?当然是路径和文件名. 首先我需要知道我操作的文件在哪里,叫什么名字.在C语言中还存在一个打开方 ...

  7. C语言文件操作解析(五)之EOF解析(转载)

      C语言文件操作解析(五)之EOF解析 在C语言中,有个符号大家都应该很熟悉,那就是EOF(End of File),即文件结束符.但是很多时候对这个理解并不是很清楚,导致在写代码的时候经常出错,特 ...

  8. 【转】C语言文件操作解析(三)

    原文网址:http://www.cnblogs.com/dolphin0520/archive/2011/10/07/2200454.html C语言文件操作解析(三) 在前面已经讨论了文件打开操作, ...

  9. 3)Linux程序设计入门--文件操作

    )Linux程序设计入门--文件操作 Linux下文件的操作 前言: 我们在这一节将要讨论linux下文件操作的各个函数. 文件的创建和读写 文件的各个属性 目录文件的操作 管道文件 .文件的创建和读 ...

随机推荐

  1. CSS选择器世界

    CSS选择器世界 CSS选择器的分类与优先级 css选择器分为四类:选择器.选择符(后代关系的空格.>.+.~.||).伪类.伪元素(::before.::after.::first-lette ...

  2. H5监听浏览器滚动条scrollbar

    监听滚动条scrollbar(适配手机) 1. document.documentElement.scrollHeight:整个html的高度,含被隐藏界面高度 2. window.pageYOffs ...

  3. Android Webview H5资源本地化

    Android Webview H5资源本地化 一. 创建读取资源项目独立模块 1. 项目依赖的好处 符合模块化的思想,他们相互独立.一个项目持有另一个项目的引用,修改更加方便. (注:compile ...

  4. 大数四则运算之减法运算-----c语言版

    /* 分三种情况: 1.减数长度大于被减数 交换减数与被减数,输出负号,方便减 2.减数长度等于被减数(分三种情况) a.减数大于被减数,类似1情况1 b.减数等于被减数,两数相等,直接输出0,完成. ...

  5. JAVA架构之单点登录 任务调度 权限管理 性能优化大型项目实战

    单点登录SSO(Single Sign On)说得简单点就是在一个多系统共存的环境下,用户在一处登录后,就不用在其他系统中登录,也就是用户的一次登录能得到其他所有系统的信任.单点登录在大型网站里使用得 ...

  6. jquery带下拉列表的购物车组件封装

    按照国际惯例先放效果图 安静的时候它长这样 等待加载时它长这样(功能是设置的按需加载,网速慢或者加载数据大时会出现) 加载之后购物车没有商品时这样 有商品长这样 接下来放代码: cart.html & ...

  7. 【原创】关于pyinstaller打包的程序执行出错问题,pyinstaller3.5只支持matplotlib3.0.2已经解决

    之前,在用pyinstaller打包一个python程序时没有问题,后来不知道什么原因,再打包时出现了所谓的pyinstaller打包报错: RecursionError: maximum recur ...

  8. Visual Studio Code中C/C++的环境配置

    Visual Studio Code 的功能十分强大,但是对我这种小白不是很友好,它和其它的集成开发工具不同,Visual Studio Code (以下简称VS)自身其实仅仅是一个编辑器, 是不具备 ...

  9. JS中函数的本质,定义、调用,以及函数的参数和返回值

    要用面向对象的方式去编程,而不要用面向过程的方式去编程 对象是各种类型的数据的集合,可以是数字.字符串.数组.函数.对象…… 对象中的内容以键值对方式进行存储 对象要赋值给一个变量 var cat={ ...

  10. Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set…

    php打印小票错误提示:Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activate ...