关于linux:在-Linux-环境下模拟实现命令解释器

115次阅读

共计 976 个字符,预计需要花费 3 分钟才能阅读完成。

拜访【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 中通过函数指针来实现。

正文完
 0