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

云南城市建设职业学校官方网站网站后台打开慢

云南城市建设职业学校官方网站,网站后台打开慢,网站建设收费标准好么,东莞网上推广平台以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。 前言 Linux中一切接文件,比如 C 源文件、视频文件、Shell脚本、可执行文件等,就连键盘、显示器、鼠标等硬件设备也都是文件。 一个 Linux 进程可以打开成百上…

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。

 

前言

Linux中一切接文件,比如 C++ 源文件、视频文件、Shell脚本、可执行文件等,就连键盘、显示器、鼠标等硬件设备也都是文件。

一个 Linux 进程可以打开成百上千个文件,为了表示和区分已经打开的文件,Linux 会给每个文件分配一个编号,这个编号就是一个整数,被称为文件描述符(File Descriptor)。这只是一个形象的比喻,并没有解释文件描述符的本质。

本篇文章将从底层实现的角度分析文件描述符,看看文件描述符到底是如何表示一个文件的。

Linux 文件描述符到底是什么?

一个 Linux 进程启动后,会在内核空间中创建一个进程控制块 PCB,而 PCB 内部有一个文件描述符表。文件描述符表,记录着当前进程所有打开的文件。每个进程都有一个文件描述符表。

除了文件描述符表,系统还需要维护另外两张表:打开文件表、i-node 表。整个系统只有一个打开文件表,一个i-node 表。

文件描述符表、打开文件表、 i-node 表,它们三者之间的关系如下图所示。

从本质上讲,这三种表都是结构体数组,0、1、2、73、1976 等都是数组下标。表头只是我自己添加的注释,数组本身是没有的。实线箭头表示指针的指向,虚线箭头是我自己添加的注释。

你看,文件描述符只不过是一个数组下标!

通过文件描述符,可以找到文件指针,从而进入打开文件表。打开文件表存储了以下信息: 

(1)文件偏移量,即文件内部指针偏移量。调用 read() 或 write() 时,文件偏移量会自动更新,也可以使用 lseek() 直接修改。

(2)状态标志,比如只读模式、读写模式、追加模式、覆盖模式等。

(3)i-node 表指针。

要想真正读写文件,需要通过打开文件表的 i-node 指针进入 i-node 表。i-node表包含以下信息: 

(1)文件类型,例如常规文件、套接字或 FIFO。

(2)文件大小。

(3)时间戳,比如创建时间、更新时间。

(4)文件锁。

这里对上图进一步说明:

(1)在进程 A 中,文件描述符 1 和 20 都指向同一个打开文件的表项,标号为 23(指向打开文件表中下标为 23 的数组元素),这可能是通过调用 dup()、dup2()、fcntl() 或者对同一个文件多次调用open() 函数形成的。

(2)进程 A 的文件描述符 2 和进程 B 的文件描述符 2 都指向同一个文件,这可能是在调用 fork() 后出现的(即进程 A、B 是父子进程关系),或者是不同的进程独自去调用 open() 函数打开了同一个文件,此时进程内部的描述符正好分配到与其他进程打开该文件的描述符一样(碰巧都是2)。

(3)进程 A 的描述符 0 和进程 B 的描述符 3 分别指向不同的打开文件表项,但这些表项均指向 i-node 表的同一个条目(标号为 1976);换言之,它们指向了同一个文件。发生这种情况是因为每个进程各自对同一个文件发起了 open() 调用。同一个进程两次打开同一个文件,也会发生类似情况。 

有了以上对文件描述符的认知,我们很容易理解以下情形:

(1)同一个进程的不同文件描述符可以指向同一个文件。

(2)不同进程可以拥有相同的文件描述符。

(3)不同进程的同一个文件描述符可以指向不同的文件(一般也是这样,但除了 0、1、2 这三个特殊的文件)。

(4)不同进程的不同文件描述符也可以指向同一个文件。

http://www.yayakq.cn/news/127628/

相关文章:

  • 如何自己学建设网站脚上起小水泡很痒是什么原因
  • 深圳网站建设深圳网织梦网站模板还原的文件在哪里
  • 湖北seo网站多少钱上海做网站设计
  • 网站不备案可以做百度推广吗厦门做网页网站的公司
  • 深圳网站设计公司是什么国内做视频网站需要啥
  • 外贸多语言网站seo方案
  • 带icp备案的网站深圳网站建设大公司好
  • win8网站源码英文网站制作 官网
  • 哪些网站有搜索引擎作弊的做国际贸易做什么网站
  • 英文都不懂 学网站建设维护难吗佛山h5建站模板
  • 济南有做五合一网站公司网站模板 英文
  • ps做网站 字体多大网站建设资金预算
  • 蚌埠网站设计tp5.1做的网站
  • 买东西网站建设用手机可以建设一个手机网站吗
  • 网站建设 百度经验苏州seo服务
  • 十堰优化网站公司重庆社区官网
  • 外贸在什么网站做网页素材网站有哪些
  • 网站建设 业务培训wordpress恢复主题
  • 免费个人logo设计网站公司网站怎么申请怎么注册
  • 网站产品页如何做优化网站开发技术与应用课程设计
  • 影楼模板网站如何做好电子商务网站开发
  • 网站建设等级定级什么网站可以做宣传
  • 深圳网站建设 site江苏城市建设档案馆网站
  • 企业网站管理系统的运维服务新冠北京最新消息
  • 内蒙古住房与城乡建设厅网站网址早期网站开发用的技术
  • 简单的网站建设公司的模板下载WordPress登录不进
  • 同一个域名两个网站界面设计论文
  • 建设学院网站的意义网站建设哪家性价比高
  • 沈阳网站建设德泰诺建设银行海外分行招聘网站
  • 上海营销网站建设公司企业网站网页