linuxls功能实现实验报告.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
linuxls功能实现实验报告

西安郵電學/uid-796091-id-3206153.html; 给内核模块传入参数path,其中path为绝对路径; 当path为目录时,显示目录对应的dentrey结构中的相关信息(可打印的信息); 当path为文件时,显示文件对应的indoe结构中的相关信息(可打印的信息); 当路径错误时,有错误提示信息。 开发环境 设备名称 设备类型 配置类型 参数 Lenovo PC机 硬件配置 软件配置 设备类型 配置类型 参数 Lenovo PC机 硬件配置 软件配置 总体设计 5.1功能组织图 ls 功能图: 文件权限: 内核模块: super_blocks: path: 5.2原理 linux?文件系统??: linux下有普通文件、目录文件、链接文件、设备文件、管道文件这几种类型。但链接文件、设备文件、管道文件都可以当做普通文件看待,那实际也就只要区分普通文件和目录文件这两种了。而目录文件的内容就是它所包含所有文件和子目录的一个列表,所以只要打开目录文件并读取对应目录块里的那个列表数据,就可以得到些目录下所有文件和子目录的名称了。其实这个流程简单,就是:打开目录-读取内容-显示文件名称-关闭打开的目录。? Linux系统中会有很多目录。每个目录中又会有很多文件。如果要列出一个非当前目录的内容或者是一个特定文件的信息,则需要在参数中给出目录名或文件名。如:? ? ls?/tmp?//列出/tmp目录中各文件的文件名??? ls?–?docs?//列出docs目录中各文件的属性? ls?*.c?//列出当前目录下与*.c匹配的文件,即当前目录下所有以.c为后缀的?????经常用到的命令行选项? ls?-l?在前面已经提到过,-l就是输出文件详细的信息????? ?ls?-a?列出的内容包含以“.“开头的文件,即所谓有隐藏文件? ?Linux的文件访问权限: Linux是一个安全的操作系统,说他安全,最重要的一个原因是对用户访问权限的控制。在shell下我们可以通过命令ls-l filename 来查看一文件的属性。其中第一项文件属性总共由10位构成,第一位是文件类型,剩下9位都是表示文件的访问权限,每3个一组,第一组:文件所有者对该文件的操作权限,第二组表示与文件所有者同组的用户对该文件的操作权限,第三组表示其他用户对该文件的操作权限,权限由三种字母组成:r:可读w:可写x:可执行。 编写内核模块 写内核模块,打印super_block结构中一些域的值。(课本上的例子) 遍历系统中的超级块:list_head结构类型的字段名称为s_list。list_entry宏通过指向list_head节点的地址来得到外部超级块的首地址。获取系统中个超级块的地址,获得某个子进程的地址,打印文件系统所在的主设备号和次设备号和文件系统名。遍历打印每个超级块中的所有索引节点号,打印索引结点。 内核模块传入参数path,其中path为绝对路径 path=路径时,显示如下信息: 目录项标志、哈希表、短目录名、目录项长度、目录项名、目录项计数器的引用 path=文件时,显示如下信息: 文件索引节点的数量、文件类型和权限、用户ID、用户组ID、指定文件系统的读写访问标志、文件大小、索引节点的状态、硬链接数、引用记数、文件的块、版本号、以位为单位的块大小 详细设计 模块一ls 1.功能 (1)ls支持 -l 参数; (2)输出结果按字典排序; (3)列出“.”文件,支持-a参数,在没有-a时候不显示隐藏文件 支持 –u参数。支持 –R参数; (4)显示记录总数。 (5)支持对给定的目录进行操作,如 ls /tmp; (6)输出结果分栏排序,每栏的宽度由这一栏最长的文件名决定,显示的栏数还受终端显示器的宽度影响,每一列尽可能的等宽; (7)修改文件权限 2.算法/流程图 ls算法描述: 根据输入命令所带的参数判断并调用函数do_ls(); 把隐藏文件属性写入结构体数组Outputpoint[]中并统计文件数。 非隐藏文件属性写入结构体数组Output[]中并统计文件数。 按参数要求对文件名进行排序。 根据要求输出。 流程图: main()函数: 是 否 是 否 否

文档评论(0)

tiangou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档