导言:一直希望学生们养成良好的习惯,比如,良好的计划,良好的文档,良好的周报告。但是,这些小事贯彻起来,往往有折扣。比如,有些同学不知道怎么写完整的周报告,草草几行了事。好在,本周收到一份完整的周报告可供大家参考:
时间:2010/7/26-2010/7/30
报告人:XXX
报告内容:
本周我实现了my_cp,这个程序基本上都是我自己完成的。在此之前我实现过my_ls和my_shell,这两个程序都极大的参考了《linux C编程实战》一书,但是现在看来对这次my_cp的实现有很大帮助。
my_cp主要的功能如下:
1.将一个文件拷贝到指定路径(目的文件可存在也可不存在)。这是my_cp中最基本的功能,事实上2,3,4功能最终都会被分解成此功能。
2.将一个目录拷贝到指定目录下,此时必须加-R或-r选项。
3.将多个目录拷贝到指定目录下,此时必须加-R或-r选项。
4.将多个文件拷贝到指定目录下。这里的源文件即包含目录文件也包含普通文件。
以上四个基本要求中,核心功能是1和2,其对应的函数即为:cp_single函数和cp_directory函数。将这两个函数的有效结合即可实功能3和4。具体的功能详解我在博客
http://www.edsionte.com/
上有分析。
这次完成my_cp,我的小结如下:
1.真正涉及到copy的部分并不难编码,因为涉及到的那几个系统调用函数是文件操作部分最基本的函数。最难也是最重要的部分是对cp命令功能的掌握,以及cp命令对用户所输入的参数的合法性判断。并且文件路径变化很灵活,可能少一个/就会有不同的结果。这需要我们不断测试cp命令,了解它是如何处理的。
2.从小做起很重要。如果说对于my_cp整体逻辑上的判断靠的是C语言基础知识,那么对于涉及linux下C编程的部分就是平时一些小程序的积累。比如复制部分,其实就是《linux C编程实战》上一些小程序的综合。
3.我记得在我刚开始看文件操作部分的内容时,我感觉这些繁杂的系统调用函数不属于我,即便我看懂了书上的解释,但是还是不懂得何时用,怎么用。但是最近通过一些程序,比如my_ls和my_cp程序,让我懂得如何运用这些函数。
以上是我本周学习的一些感悟。未来的日子还需我继续坚持与加油。