操作系统实验-文件系统扩展实验:深度遍历和广度遍历目录的文件大小和修改时间

需积分: 0 18 下载量 65 浏览量 更新于2024-01-22 1 收藏 957KB DOCX 举报
操作系统实验-文件系统扩展实验报告 实验名称:文件系统扩展实验 实验要求:对程序5_9进行扩展,要求参数为目录名,且其下至少有三层目录,分别用深度遍历及广度遍历两种方法对此目录进行遍历,输出此目录下所有文件的大小及修改时间。 实验目的:在实验过程中应用的操作系统理论知识1. 熟悉和应用深度优先和广度优先遍历算法2. 熟练掌握 Linux 系统下关于文件系统的 API3. 掌握有关数据结构和指针的应用4. 掌握使用 GDB 调试的方法5. 掌握实际运用中堆栈的内存分配 实验内容:为完成实验,如何进行程序设计 DFS:整体思路:从所给的目录进入,按照 readdir 打开指针的顺序开始逐个遍历,遇到文件就按照规定格式输出信息。遇到目录就对该目录进行 DFS,之后返回上一级继续遍历。当当前目录没有文件时返回。流程图:重点部分:重点是 DFS 对退出循环和回溯时间点的把握。这里退出循环的时间点是当前目录没有可读文件或者目录。回溯时间点是当读到的文件为目录时,进入下一层 DFS BFS:整体思路:利用队列,参考二叉树的层次遍历。先将根目录入队,并标记为已访问。然后依次对队列中的每个元素进行处理,遇到文件则输出信息,遇到目录则将其入队。重复以上步骤,直到队列为空。 实验过程:在实验过程中遇到了一些问题,比如对于DFS算法在退出循环和回溯时间点的把握上出现了一些困难。通过反复调试和查找资料,最终成功解决了这些问题。同时,在实验过程中还运用了堆栈的内存分配以及文件系统的 API,这些都是在操作系统理论知识的基础上的实际应用。 实验结果:通过深度优先和广度优先两种方法,对目录进行遍历,成功输出了目录下所有文件的大小及修改时间。实验结果符合预期。 实验总结:通过这次实验,我深刻理解了深度优先和广度优先遍历算法的应用,熟练掌握了 Linux 系统下关于文件系统的 API,加深了对数据结构和指针的应用的理解。同时,我也进一步掌握了使用 GDB 调试的方法。这次实验不仅是对操作系统理论知识的应用,也是对实际运用中的堆栈的内存分配和文件系统的 API 的实践。通过这次实验,我对操作系统的原理和实践有了更深入的了解,也对文件系统扩展有了更多的认识和体会。可以说,这次实验对我学习操作系统理论知识和提高操作系统实践能力都有着非常积极的意义。