访问【WRITE-BUG数字空间】_[内附完整源码和文档]
操作系统大作业 Linux 命令行,在 Linux 环境下模拟实现命令解释器。在指定的一个目录及其子目录中查找指定的文件和目录,并输出查找到的文件和目录的绝对路径,并指明是文件还是目录。详细设计见md文件。
一.程序概述
1.完成的任务:
1)显示当前所在目录的路径名;
2)列出指定目录中所有的目录和文件;
3)改变当前工作目录;
4)新建一个目录即新建一个文件夹;
5)删除一个目录即删除一个文件夹;
6)退出命令解释程序;
7)重命名一个文件或目录;
8)复制已经存在的目录;
9)在指定的一个目录及其子目录中查找指定的文件和目录,并输出查找到的文件和目录的绝对路径,并指明是文件还是目录。
2.遇到的困难及解决的问题
1)一开始不知道用什么方式在不用 system()的情况下完成这个命令解释程序,后来看到了要求里面的函数也不知道用来干嘛,所以就去拿每一个函数去百度,知道它们分别用在哪里;
2)关于列出指定目录中所有的目录和文件这个功能,不知道用什么方式遍历目录中的所有节点,后来,通过查询 opendir()、readdir()、closedir()的用法解决了这个难题;
3)在实现复制功能时,关于复制整个目录的内容到另一个目录下的这个功能不知道如何实现,递归但是不知道如何定位所复制目录中的文件;
4)关于查找文件的功能,使用了 ftw()函数的回调,实现了对指定目录的遍历,并且通过判断实现待查找文件的匹配。
5)在复制文件时出现文件权限不足、复制出来的文件无法正常打开的情况,经过多次尝试,发现是在创建文件的时候没有把权限设置完整,在完整之后就解决了这个问题。
二.概念原理
1.目录:为了方便对存储介质中的文件的管理而产生的一种索引结构,可以理解为目录中包含有另外的目录和文件。
2.路径:说明一个文件或者一个子目录在整个目录系统中的位置,用于定位一个文件或者子目录,包括绝对路径和相对路径两中方式。
3.文件:文件是指存储在存储介质中的一段特定格式的数据资料。
4.目录流:对一个目录中的每个项进行读取的方式,是目录中所有节点的信息序列。
5.文件流:是该文件中数据资料的格式化序列,代表着所有数据的信息。
6.文件复制:将一个文件中所有的内容全部备份到另外一个文件中。
7.函数回调:回调是一种双向调用模式,C 中通过函数指针来实现。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net