内容源于朱友鹏老师的课程笔记的学习整理,如有侵权,请告知删除。

一、linux中如何管理文件

(1)硬盘中的静态文件和iNode(i节点)

  • 内容管理表 + 真正存储的内容;
  • 内容管理表以文件为单位进行管理,每个文件一个结构体(即iNode);
  • 平常说的快速格式化,其实就是把内容管理表删除,真正的内容没有被删除。

(2)内存中的动态文件和vnode(v节点)

  • 每个进程都有一个数据结构(叫进程信息表),记录了该进程的所有信息;
  • 进程信息表中有一个指针指向一个文件管理表(叫文件描述符表);
  • 文件描述符表记录了当前进程打开的所有的文件及其信息,即文件描述符与文件表指针。文件描述符相当于数组下标,数组的值是文件表指针。
  • 其中文件表指针指向了文件表,文件表中包含V节点指针、当前文件位移量(即文件指针所处的位置;在动态文件中,文件指针表示当前在文件流的哪个位置)。
  • 如图:


二、一些概念

  • API 的一些概念

(1)基于linux做应用开发,其实就是通过调用linux系统提供的API来实现;

(2)API 是一些由linux系统提供的函数,给应用层使用,以完成一定的功能。

(3)常用的文件IO的API 有open,close,write,read,lseek等。

  • 文件描述符(fd)

(1)实质就是一些非负整数,用来区分一个程序打开的多个文件;

(2)作用域是当前进程,也就是说,不同进程下打开的文件的文件描述符可以是相同的数字;

(3)fd从0开始,依次增加。其中0,1,2已经被stdin,stdout,stderr这3个文件占用,也就是说,当运行一个程序时,默认打开了上述三个文件,即把键盘、屏幕当做文件。

  • 文件IO和标准IO的异同

(1)标准IO是C库函数,文件IO是系统提供的API;

(2)C库函数由API封装而来;

(3)C库函数具有移植性,而API是针对具体的系统设计的;

(4)标准IO带有缓存,而文件IO没有缓存。

  • man手册的查询

man  1  xxx    查询linux的shell命令

man  2  xxx    查询API

man 3   xxx    查询库函数

  • 退出进程

(1)打开文件时如果就出错了,后面的操作就应该不再进行。如 _exit(-1)

(2)退出程序:在main中用return,正常return 0,异常return -1;典型的终止进程应该用exit,_exit,_Exit,后二者是系统API,前者是库函数。

  • 文件的重定位(即把向屏幕输出的内容,输出到某个文件)

fd1=open("文件名",flag) ;

close(1);

fd2=dup(fd1);

三、常见的API

(1)常用文件IO的API 有open,close,write,read,lseek,dup,dup2,fcntl等,具体使用方法可以查看man手册;

(2)注意open里面的flag对文件操作的影响。

Linux文件IO(文件的读写)相关推荐

  1. linux文件IO——文件IO介绍

    文章目录 1.文件IO和标准IO区别 2.什么是文件IO 3.文件描述符 4.open函数 5.close函数 1.文件IO和标准IO区别 \qquad标准IO遵从ANSIC,文件IO遵从POSIX: ...

  2. Python中的文件IO操作(读写文件、追加文件)

    [注]:下述操作过程是结合多种网络方法,然后自己实践的结果.写在这里,主要目的是加深记忆,也希望能帮助后来者 Python中文件的读写包含三个步骤:打开文件,读/写文件,关闭文件. 文件打开之后必须关 ...

  3. Linux关闭io,文件的打开与关闭-IO

    1.文件的目的 就是把一些存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力 2.文件的打开与关闭 如果想用word编写一份简历,应该有哪些流程呢? 1.打开word软件, ...

  4. Python文件IO处理技巧: 读写、重定向、间隔符、路径、存在性与文件列表

    1. 文本数据的读写 open() & write() : rt模式的刷新模式 当我们需要读写各种不同编码的文本数据(如ASCII,UTF-8或UTF-16编码等), 可以直接使用带rt模式的 ...

  5. Linux c语言中的IO -- 文件IO

    文章目录 1. 文件IO 2. 文件描述符 什么是文件描述符?文件描述符何时产生? 3. 文件IO常用函数 open() close() 对比fopen()与open()打开文件权限 read() w ...

  6. Linux系统编程之文件IO

    Linux系统编程之文件IO 文件IO第一天 一.标准IO基本概念 1.1c语言函数 (c库函数) 调用实现某一个功能,(API) 1.2系统调用:内核中的程序接口,应用程序和硬件设备之间的中间层 1 ...

  7. Linux Ubuntu下的文件IO介绍及实例应用(C语言)

           大家好,我是练习编程时长两年半的个人练习生昆工第一ikun,昨天咋们说了标准IO,今天咋们来分享文件IO,以及一个很有趣的实例,给图片加密,使其无法打开.话不多说,上代码. 一.文件IO ...

  8. 文件IO实现图片的加密操作

    目录 1.什么是文件IO 2.什么是文件描述符 3.文件相关系统调用函数 (1)打开关闭文件 文件打开open(): 文件关闭close() (2)读写文件 读文件read() 写文件write() ...

  9. 通过文件IO的学习,实现对照片的加密与解密,干货满满!!

    关于图片文件的描述我也并不是特别了解,想具体了解的可看这篇文章添加链接描述 首先,对图片的加密解密原理来说很简单,只需要对图片文件的前几个字节进行以一定规则打乱后,就实现的加密,后面需要复原图片时将打 ...

  10. linux系统IO操作

    本文重点说明下面内容: 什么是标准IO,什么是文件IO? 什么是Direct IO? O_SYNC标识有什么意义? 各个层面的缓存如何同步? 还在page cache中的脏页可以读写吗? IO路径上的 ...

最新文章

  1. 使用JDBC改变Oracle的session參数 NLS_DATE_FORMAT
  2. 我是技术总监,你干嘛总问我技术细节?
  3. csapp bufbomb实验
  4. 对USB驱动程序的理解(1)
  5. 095实战 ETL的数据来源,处理,保存
  6. Java和C的关系及发展历程
  7. Android预定义样式?android:attr/attribute、?attr/attribute和?attribute
  8. chrome的webdriver下载地址
  9. 利用爬虫技术清理微博“僵尸粉”
  10. Remoting技术
  11. 前端使用goeasy
  12. matlab插值函数
  13. SIRS传染病模型求解及MATLAB实现
  14. 颈椎前路caspar撑开器_Caspar撑开器和颈椎带锁钢板治疗下颈椎骨折脱位
  15. WindowsServer2012R2 SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808)解决办法
  16. 【123】linux中 top 解析
  17. 铁甲雄兵哪个服务器人最多,超级玩家第三期——铁甲雄兵全区最高等级玩家
  18. 微信小程序服务器和app互通,解读:App 与小程序的互通能力和限制
  19. 计算机考试ppt应用,职称计算机考试辅导:Powerpoint使用母版
  20. 计算机在职研是不是双证,计算机双证在职研究生好考吗?

热门文章

  1. 1030 完美数列 (25 分)二分
  2. android -- 蓝牙 bluetooth (二) 打开蓝牙
  3. asp.net下用js实现弹出子窗口选定值并返回
  4. 和菜鸟一起学linux之bluez学习记录2
  5. 搜索连接字符串存储过程【原创】
  6. 书写README的各种markdown语法
  7. ASP 代码当前记录集不支持更新问题的解决办法。
  8. 工作中常用的但是又容易忽略的问题
  9. Kinect2.0-空间长度测量
  10. dealloc不调用的情况