C语言库函数的文件操作实际上是独立于具体的操作系统平台的,不管是在DOS、Windows、Linux还是在VxWorks中都是这些函数:
创建和打开的函数:
    FILE *fopen(const char *path, const char *mode);
    fopen()实现打开指定文件filename,其中的mode为打开模式,C语言中支持的打开模式如下表:
    r, rb 以只读方式打开
    w, wb 以只写方式打开。如果文件不存在,则创建该文件,否则文件被截断
    a, ab 以追加方式打开。如果文件不存在,则创建该文件
    r+, r+b, rb+ 以读写方式打开
   w+, w+b, wh+ 以读写方式打开。如果文件不存在时,创建新文件,否则文件被截断
   a+, a+b, ab+ 以读和追加方式打开。如果文件不存在,创建新文件
   其中b用于区分二进制文件和文本文件,这一点在DOS、Windows系统中是有区分的,但Linux不区分二进制文件和文本文件。
 读写的函数:
     C库函数支持以字符、字符串等为单位,支持按照某中格式进行文件的读写,这一组函数为:
     int fgetc(FILE *stream);
     int fputc(int c, FILE *stream);
    char *fgets(char *s, int n, FILE *stream);
     int fputs(const char *s, FILE *stream);
    int fprintf(FILE *stream, const char *format, ...);
    int fscanf (FILE *stream, const char *format, ...);
     size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
    size_t fwrite (const void *ptr, size_t size, size_t n, FILE *stream);
    fread()实现从流stream中读取加n个字段,每个字段为size字节,并将读取的字段放入ptr所指的字符数组中,返回实际已读取的字段数。在读取的字段数小于num时,可能是在函数调用时出现错误,也可能是读到文件的结尾。所以要通过调用feof()和ferror()来判断。
     write()实现从缓冲区ptr所指的数组中把n个字段写到流stream中,每个字段长为size个字节,返回实际写入的字段数。
另外,C库函数还提供了读写过程中的定位能力,这些函数包括
    int fgetpos(FILE *stream, fpos_t *pos);
   int fsetpos(FILE *stream, const fpos_t *pos);
   int fseek(FILE *stream, long offset, int whence); 
   。。。
下面看一个例子,源代码如下
#include <stdio.h>
#define LENGTH 100
main()
{
  FILE *fd;
  char str[LENGTH];
fd = fopen("file.txt", "w+"); 
  /* 创建并打开文件 */
  if (fd)
  {
    fputs("Hello, create file success!", fd); 
 #   /* 写入Hello, software weekly字符串 */
    fclose(fd);
  }
fd = fopen("file.txt", "r");
  fgets(str, LENGTH, fd);
  ## /* 读取文件内容 */
  printf("%s\n", str);
  fclose(fd);
}

编译一下,看看效果如何。。。

本文转自你是路人甲还是霍元甲博客51CTO博客,原文链接http://blog.51cto.com/world77/354437如需转载请自行联系原作者
world77

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

  1. linux下c语言读写文件操作,linux下的系统级c语言文件读写操作

    最近初次接触Linux这么高端的东西,有种进城的感觉.进了linux,发现城里人说话做事的方式都很不一样. 个人感觉,初次接触linux主要的痛点在于命令行交互的方式,这就要求我接受城里人的思维,wh ...

  2. linux下c语言写文件,Linux下C语言之文件操作

    C语言库函数的文件操作实际上是独立于具体的操作系统平台的,不管是在DOS.Windows.Linux还是在VxWorks中都是这些函数: 创建和打开的函数: FILE *fopen(const cha ...

  3. Linux下C语言的文件操作

    代码: 1 #include <stdio.h> 2 #include <string.h> 3 #include <fcntl.h> 4 /*********** ...

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

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

  5. Linux下C编程-----IO/文件操作 模拟linux ls程序显示文件系统树形结构(2)

    Linux下的IO/文件操作练习,知识虽然简单 但是往往基础容易被忽略,偶尔的练习是有必要的. 练习printf /****************************************** ...

  6. Linux下编辑并保存文件操作步骤

    墙裂建议看下,戳:vi 和 VIM的区别 详细介绍了编辑文件保存 步骤一: 打开命令控制台找到要编辑的文件,可执行命令ls看看下面有几个文件 如要编辑的文件名称为:test 步骤二: 打开文件 --命 ...

  7. linux中system.img文件,Linux下对system.img文件操作

    接下来要注意:要分清通常的Linux和ylmfos的区别 先输入指令 sudo su(通常的Linux和ylmfos都要输) 然后出现Password:,输入你的用户密码,直接输入,但是看不见,但其实 ...

  8. linux文件读写 c语言,Linux 下 C语言大文件读写(大于4G)

    以下的做法整理自论坛上的帖子. 如何create大文件 要大就非常大,1T吧. 有两种方法: 一.dd dd if=/dev/zero of=1T.img bs=1G seek=1024 count= ...

  9. linux下c语言tcp文件传输,C语言实现TCP通信

    导读 如果想要自己写一个服务器和客户端,我们需要掌握一定的网络编程技术,个人认为,网络编程中最关键的就是这个东西--socket(套接字).socket(套接字):简单来讲,socket就是用于描述I ...

最新文章

  1. postgresql创建只读账号
  2. 科学家正让AI自己做实验,想要机器摆脱人类的直觉
  3. SQL Server数据库中、获得刚插入新记录的自动ID号
  4. [Jarvis OJ - PWN]——Typo(内涵peak小知识)
  5. ADI官方源码快速搭建demo工程验证设计的正确性
  6. css用一张大图片来设置背景的技术真相
  7. linux内存和flash区别,嵌入式Linux概念NOR/NAND Flash的差别
  8. matlab 高级函数 —— circshift、squeeze
  9. 新增10亿元作支持 重庆将多举措提升科技创新能力
  10. Atitit 编程语言常用算法attilax总结
  11. 题目管理后台系统_推荐一套GitHub开源通用后台管理系统
  12. 征战FPGA之制作FLASH烧写用的bin文件
  13. Excel VBA入门教程
  14. 如何删除顽固文件或文件夹?
  15. Thumbnails压缩图片
  16. webassembly介绍
  17. .NET 高级架构师0003 架构师之路(2)---架构师的职责
  18. 【wmi】C++获取windows激活状态
  19. 桌面文件删除了怎么恢复
  20. 枪火重生灵界狂潮攻略 (二)老虎流派

热门文章

  1. 基于深度学习的文本数据特征提取方法之Glove和FastText
  2. SAP MM ME57界面看到的供应源跟Source List主数据不一致?
  3. 10岁宝宝制作的三国演义题材的海报
  4. 深度学习的搜索应用Searching with Deep Learning
  5. SAP MM ME21N 创建PO时报错 - Net price in CNY becomes too large – 之原因分析
  6. 一句话总结LLE(流形学习)
  7. 史上第一次,AI能够自学翻译地球上的任何语言了
  8. 清华博士后用10分钟讲解AlphaCode背后的技术原理,原来程序员不是那么容易被取代的!...
  9. 鸿蒙系统全面解析,诞生背景、技术细节生态圈一文看懂
  10. 2020技术趋势报告-中文版