当前位置: 首页 > news >正文

网站蓝色绿色配色天津市工程造价信息网

网站蓝色绿色配色,天津市工程造价信息网,软件设计流程图,logo设计在线生成免费网站文件 1、回顾C语言中的文件接口2、对文件的理解(阶段一)3、文件操作3、1、C的文件操作接口3、2、认识系统调用接口3、2、强化对fd文件描述符及周边知识的理解 1、回顾C语言中的文件接口 事实上#xff0c;我们在C语言的学习中了解的文件并不是真正的文件。从语言角度来说的文件操作接口3、2、认识系统调用接口3、2、强化对fd文件描述符及周边知识的理解 1、回顾C语言中的文件接口 事实上我们在C语言的学习中了解的文件并不是真正的文件。从语言角度来说我们没有真正的理解文件的含义 。又由于所有的语言几乎都能够对文件就行操作但是每一个语言都不相同谁给的勇气让他这么做呢那一定是操作系统啊在操作系统方面上的相同让文件操作有着多种的可能所以我们想要真正的理解文件我们就得从操作系统上来理解。 但是我们还是首先回顾先回顾一下代码的层次。 对于“W”来说表示的含义是如果不存在就在当前目录下新建指定的文件。默认打开文件的话会先默认清空文件中的内容。 但是这个写完的程序在进行的时候程序怎么知道在哪里找文件程序怎么知道没有文件之后直接就在所谓的当前目录下就直接创建的呢 问题就是可执行程序是如何知道在当前目录之下 答案是打开文件是在进程的基础下打开的进程在启动的时候就会有当前进程的运行的工作路径。所以打开文件创建文件都在这个路径下创建的。 我们进行文件操作前提是我们的程序跑起来了文件打开和关闭都是CPU在执行我们的代码。 除此之外还有“a”操作他的含义就是追加不会清空文件 2、对文件的理解(阶段一) 所以对文件的打开其实就是进程打开文件。 文件没有被打开的时候会存在于磁盘上。 一个进程也能打开很多文件。 一个系统中又能够存在多个进程所以很多时候OS系统内部一定存在大量的被打开的文件所以大量的打开的文件OS必须要对这些文件进行合理的管理。怎么管理呢先描述再组织。所以可以大胆的猜一猜对于每一个被打开的文件。在OS内部一定存在这对应的描述文件属性的结构体类似PCB。 所以最后在内核进程的结构体中我们应该能够看到PCB的结构体内部有指向一个对文件属性控制的结构体指针。 不止是这些的C语言中的对于代码的修改在Linux操作系统上的echo进行重定向也能够对文件内容进行修改所以输出重定向一定是文件操作并且每次重定向写入的方式是先清空再写入其实根本上这个输出重定向也就是按照w的方式进行打开的。 所以既然知道了 的含义就是w的方式打开文件那我们也能够这样直接创建文件。也能够直接 的方式重新刷新文件内容。 当然 表示的是w那么其中也有表示a的含义的命令行那就是 ,表示的就是按照a方式打开。 3、文件操作 3、1、C的文件操作接口 1、操作文件本质上就是进程在操作文件进程和文件之间的关系。 2、文件-磁盘-外设-硬件(所以向文件中写入本质就是向硬件中写入)-但是用户没有权利直接向硬件写入-OS是硬件的管理者-所以要通过OS来写入-OS必须给我们提供系统调用(OS不相信任何人)-但是我们能够通过这些的函数fopen/fclose/fwrite/fread/fprintf/scanf/printf/cin/cout对硬件进行操作 -所以我们使用的C/C/…都是对系统调用接口的封装。 上面介绍了C语言的对于文件的操作下面简单看一下C对于文件的操作。 所以能看的出来各种语言进行访问文件都有些不一样难道每次都要记住不同语言的对于文件操作的函数吗 3、2、认识系统调用接口 其中的pathname可以带路径也可以带文件名。如果只是文件名的话就在当前的路径下创建文件。 其中flag是一个整数代表的是我们想怎么样的操作文件。 open函数的第一种方式代表的通常都是操作一些已经存在的文件因为如果直接创建的话在Linux操作系统中我们不知道我们创建的文件的权限是什么所以说有的时候还会让我们创建的文件的权限出现乱码的情况。 出现了我们不知道的权限T。 当然即使是使用第二种的open直接设置我们文件的权限的值了最后看我们创建的文件的属性也还是不对。 那是因为还有umask的存在会让我们的文件最后的权限有点区别。之前文章中介绍过如果忘记了可以回去看看这里介绍了掩码的概念。 所以那我们能不能在程序中动态的规划掩码的值呢 可以我们能够通过系统调用来实现。 此时一个简单的系统调用实现的文件操作就完成了。但是应该还有疑问困惑为什么open传参的是整数却传了O_WRONLY | O_CREAT呢?还有这两个是什么东西呢 那是因为在这地方的文件的操作方法有很多的组合方式我们不确定每一使用的是什么那么难道说就要每一种方法都写出来一种函数吗不能所以根据操作方式最多也就传一传012…等等之类的也不对太多所以说一个整数的32位置也就能够配合的很好的来解释操作方法。我们能够通过 | 操作将32位的每一位都能够代表一种操作方式这样能够节省大量的代码冗余问题。 类似于位图的使用—OS设计中很多系统调用接口的常见方法(很重要会实现并加深理解)。并且其中的两个在这里的大写的英文字母表示的是宏。所以为了更方便的理解设计可以直接稍微手撕一个传递位图标记位的函数来方便我们的理解。 这样我们在传参的时候就不需要多个的int来写直接这样就能多个数传参。 如果只是想上面代码中利用open的参数的话此时在文件中写东西的时候不会每次重写都要刷新文件只会继续在前面追加后来写的内容。如果想要每次写的时候都全部刷新一遍的话就需要再加上一个操作。 这样就完成了写方式打开不存在就创建存在就在写之前都要先清—相当于是C语言中的fopen的“w”操作。 当然了这么多的操作的方法其中肯定也有类似于像是“r”的操作就比如说是O_APPEDND。 只需要改变这一行中的一点就能够实现在文件末尾直接添加。 3、2、强化对fd文件描述符及周边知识的理解 上面已经有了两个问题了分别是对文件的写和追加问题系统与语言层面的关系到底是什么。 现在还有一个问题就是open的返回值问题 我们可以通过程序来帮助我们来判断返回值是什么。 可是我们函数的返回值为什么是从3开始的呢 那是因为文件操作的前面的012已经有了它们的含义。 0代表的是标准输入 键盘 1代表的是标准输出 显示器 2代表的是标准错误 显示器 这三个是默认打开的并且我们看到这三个都还和文件指针是一个样子的。 所以系统调用的open返回值和语言层面的stdinstdoutstderr之间是不是也存在着关系 这个问题的突破口就是当我们打印open的返回值的时候第一个就是3此时并不是代表前面的没有反而是一直存在的那么我们write的函数不也能直接向2里面打印看看是不是显示在显示器上不就能够证明之间确实存在关系。 所以之前的012不仅仅是表示的数字也表示的标准输入/输出/错误。 虽然他不仅仅表示数字但是我们怎么样做到能够向数字来作为根据打开一个文件然后对文件开始操作呢 所以问题就是文件描述符号fdfd的本质是什么 其中文件内核级别的缓存存储的是文件的数据结构体struct file存储的是文件的属性。 本质表示的是内核进程中的文件映射关系的数组的下标。 无论读写文件都需要再合适的时候让OS把文件的内容加载到文件缓冲区中。 open是在做什么 1、创建file 2、开辟文件缓冲区的空间加载文件数据 3、查进程的文件描述表 4、file地址填入对应的表小表中 5、返回下标 话又说回来其实read和write函数本质上也就是拷贝函数。 由于Linux操作系统一切皆文件所以其中显示器键盘的外设也能够存在于sturct file链表中所以就有了之前的012。 对于硬件来说的一切皆文件示意图。 这样的话我们在OS层面再向上看的时候就不再需要关注每一个硬件之间的差异了。所以一切皆文件了。所以我们刚刚的struct files_struct列表中才会有012的属于硬件的位置。 其中的struct file不管是对于文件也好硬件也罢这也相当于是在C中的多态。
http://www.hkea.cn/news/14546561/

相关文章:

  • 重庆高考征集志愿网站深圳互联网网站建设
  • wordpress仿站上传到使用cms建设网站安全吗
  • 学会了php的语法怎么做网站动漫制作技术专业简历
  • 南昌市建网站的公司为什么建立网站
  • cdr做图时怎么找到网站的衡水做wap网站费用
  • 西安网站公司比较大的百度不收录什么网站吗
  • 在哪个网站做简历比较好知识产权代理
  • 广州网站排名优化服务商丘手机网站制作
  • 纸做的花朵成品网站制作网站的公司叫什么
  • 一个一起做网站南昌专业做网站公司有哪些
  • 从化网站开发公司抓取网站访客qq代码
  • 论坛网站建设开源工具网站兼容
  • 邯郸做wap网站的公司河南省建设监理协会官网
  • 做网站app要多少钱具有价值的微网站建设
  • 新华美玉官方网站在线做php 开发手机网站建设
  • 建筑设计资料集江门关键词按天优化
  • 网站开发 文献综述关键词提取工具app
  • php做网站评价wordpress手机号码
  • 如何做征信公司网站佛山网站建设网站
  • 深圳建设局投标网站乐至县建设局网站
  • 查找5个搜索引擎作弊的网站什么网站的图片可以做商用
  • 邯郸做外卖网站的公司小程序怎么删除
  • 嘉兴外贸网站建设站长工具关键词
  • 济南网站建设工资有没有网站专门做cnc招聘
  • 有什么做设计接任务的网站开平市住房和城乡建设局网站
  • 婚恋网站应聘做销售医院的网站关键词定位一般是什么
  • 桂平市住房和城乡建设局门户网站制作网站 太原
  • 霍山网站建设网站集约化建设工作汇报
  • 网站设计属于什么经营范围凉山州住房与城乡建设局网站
  • 南通网站群建设wordpress对比