操作系统第4次实验报告:文件系统

·姓名:彭晨

·学号:201821121039

·班级:计算1812

1. 编写程序                              

          在服务器上用Vim编写一个程序:实现Linux系统命令ls -lai的功能,给出源代码。

          ls命令: 查看当前目录列表

          ls -l :-list使用长列表格式列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等,长格式中以d开头的是目录。

          ls -a:–all表示显示所有文件,包括隐藏文件。

          ls -i: –inode 印出每个文件的 inode 号。

         源代码:

  2. 分析运行结果

       给出运行结果截图,对于每一列是如何获取的,结合源代码做解释

          suqiankun@jmu-cs-ubuntu:~$ ls -lai 

     total 160 

     920635 drwx------ 6 suqiankun ubuntu 4096 Apr 27 09:52 . 

     131195 drwxr-xr-x 129 root root 4096 Apr 25 21:52 .. 

     920658 -rw------- 1 suqiankun ubuntu 10359 Apr 27 10:38 .bash_history

     920636 -rw-r--r-- 1 suqiankun ubuntu 220 Apr 5 2018 .bash_logout

         920638 -rw-r--r-- 1 suqiankun ubuntu 3771 Apr 5 2018 .bashrc

     920656 drwx------ 2 suqiankun ubuntu 4096 Mar 11 16:01 .cache

 输入命令"./lai-lai":

 第一列:每个文件的 inode 号。

 第二列:表示该文件或目录的权限位。

 第三列:第三列:文件的硬链接数

 第四列:文件的拥有者

 第五列:文件拥有者所在的组

 第六列:文件所占空间

 第七列:文件最近访问(或修改)的时间,使用stat结构体中的st_mtime获取。

 第八列:文件名

 3. 通过该实验产生新的疑问及解答

  这次实验中在-i的c代码的编写中出现了一些问题,然后在网上搜索了一些资料之后明白了-i的含义以及用法,解决了此问题,我也明白了系统中将目录下的文件名和文件inode号之间的映射作为目录的数据存放;人们通过文件名进行操作时,系统会通过对应路径目录的inode号找到目录的inode表数据,进而通过数据指针指向目录的数据,匹配文件名,得到文件的inode号;再到inode表中找到此文件的表项,再由文件数据指针指向真正的文件数据。

原文地址:https://www.cnblogs.com/19980803p-c/p/12809855.html