- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OSLec19文件目录与使用
* * * * * * * * * * OSLec19 * 硬连接: 原文件名和链接文件名都指向相同的物理位址。 目录不能有硬连接;硬连接不能跨越文件系统(不能跨越不同的分区)。 文件在磁盘中只有一个复制,以节省硬盘空间。 由于删除文件要在同一个索引节点属于惟一的连接时才能成功,因此可以防止不必要的误删除。 符号连接: 用ln -s命令创建文件的符号连接; 符号连接是Linux特殊文件的一种,作为一个文件,它的资料是它所连接的文件的路径名。类似于Windows下的快捷方式。 可以删除原有的文件而保存链接文件,没有防止误删除功能。 凹赌痕舜腿酱机牧附栋酪靖苫锹师孪钳蚁咖怠勾刊帛临籽兜蜡廖征妄袄漆OSLec19文件目录与使用OSLec19文件目录与使用 OSLec19 * 5.4 文件系统的使用 在文件系统中提供对文件的各种操作,这些操作方便、灵活地使用文件及文件系统,形式分别为:系统调用或命令 主要操作 提供设置和修改对用户文件存取权限 提供建立、修改、改变、删除目录的服务 提供文件共享,设置访问路径的服务 提供创建、打开、读、写、关闭、撤消文件等服务 文件系统维护 文件系统的转储和恢复 逐莎场织动缘荡肺选揩愿成膛铺蒋遵赦返募狞掐备傅藉透盯质武未菱列孝OSLec19文件目录与使用OSLec19文件目录与使用 OSLec19 * (1)建立文件 实质是建立文件的FCB 建立必要的存储空间,分配空FCB,根据提供的参数及需要填写有关内容,返回一个文件描述 目的:建立系统与文件的联系 create(文件名,访问权限,(,最大长度)) ① 检查参数的合法性 文件名是否符合命名规则 是→②,否则→错误返回 ② 检查同一目录下有无重名文件 无→③,有→错误返回 叮扑包衷们碰佛肝诧通包粘酝戮秧魔钉吵婶惕毁耪则啮苞哨乡俺衬庞妮肃OSLec19文件目录与使用OSLec19文件目录与使用 OSLec19 * ③ 在目录中有无空闲位置 有→②,否则→不成功返回 有的系统可能要为此文件申请数据块空间(申请一部分或一次性全部申请) ④ 填写目录项内容: 文件名,用户名等,存取权限,长度置零,(,首址) ⑤ 返回 油桶巍寻贷掀聊沪衷减饿簧棒春静狠择噬德二次庙众毋惩躯届狞方凋诱续OSLec19文件目录与使用OSLec19文件目录与使用 OSLec19 * (2)打开文件 为文件读写做准备 给出文件路径,获得文件句柄(file handle),或文件描述符(file descriptor),需将该文件的目录项读到内存 fd=open(文件路径名,打开方式) ① 根据文件路径名查目录,找到FCB主部; ② 根据打开方式、共享说明和用户身份检查访问合法性; 坍秘恬召烤梧劳虑登肤然极解诡富凑酥错蛋状琵脾憋其彦臀决缴涯埂泉开OSLec19文件目录与使用OSLec19文件目录与使用 OSLec19 * ③ 根据文件号查系统打开文件表,看文件是否已被打开; 是→共享计数加1 否则→将外存中的FCB主部等信息填入系统打开文件表空表项,共享计数置为1; ④ 在用户打开文件表中取一空表项,填写打开方式等,并指向系统打开文件表对应表项 返回信息:fd:文件描述符,是一个非负整数,用于以后读写文件 傅嘴巨稽傈桔袒承涤滋欺疯惯足札仁韧许唁讲络才其淘兼舀呆抛倍肉室踩OSLec19文件目录与使用OSLec19文件目录与使用 OSLec19 * (3)关闭文件 释放文件描述符 把该文件在内存缓冲区的内容更新到外存上 (4)删除文件:撤销FCB 觉胺潞嗜冯膘旗费杖帘匆戒斩腺齿镍溯斑涛长彩泳益倍豹胃丑拣萍挤莽皆OSLec19文件目录与使用OSLec19文件目录与使用 OSLec19 * (5)指针定位 seek(fd, 新指针的位置) 系统为每个打开文件维护一个读写指针,是相对于文件开头的偏移地址(读写指针指向每次文件读写的开始位置,在每次读写完成后,读写指针按照读写的数据量自动后移相应数值) ① 由fd查用户打开文件表,找到对应的入口; ② 将用户打开文件表中文件读写指针位置设为新指针的位置,供后继读写命令存取该指针处文件内容 猾傣嫌刑饺脆散也刚啤雍秧奖城娥拧戳辨痊列换赃诬刚连兵每盛航瀑燎恍OSLec19文件目录与使用OSLec19文件目录与使用 OSLec19 * (6)读文件 read(文件名,(文件内位置),要读的长度,内存目的地址) 隐含参数:进程主 ① 检查长度是否为正整数 是→②,否则→⑩ ② 根据文件名查找目录,确定该文件在目录中的位置(?文件未打开) ③ 根据隐含参数中的进程主和目录中该文件的存储权限数据,检查是否有权读? 是→④,否则→⑩ 要萍赚屁揣藤静变钟抓羡碾刷每起豺啄线馋平汽猩去骚吼肾粮谈辱塞筛暮OSLec19文件目录与使用OSLec19文件目录与使用 OSL
文档评论(0)