实现ls命令(-l -a -R)
发布时间
阅读量:
阅读量
在三个选项中,R 的实现难度最高,以下将简要介绍在实际操作过程中所面临的一些挑战。
第一次
最初尝试实现 -R 功能时,仅能处理规模较小的目录结构,一旦对根目录进行测试,几秒钟内便会崩溃。此次递归方式的设计为:每当遇到一个目录时,便将其展开,并持续深入直至最底层后返回,即采用深度优先搜索(dfs)的策略。然而常规需求通常要求逐层展开,即广度优先搜索(bfs)的方式。
第二次
采用 BFS 递归方式进行处理。存储方面,为防止出现栈溢出的情况,此次选用 malloc 函数来申请内存空间。
char **filenames = (char **)malloc(sizeof(char *) * count);
for(int i = 0;i < count;i++) //count 为 文件的个数
{
filenames[i] = (char *)malloc(sizeof(char) * PATH_MAX + 1);
}
随后自行调用自身即可完成操作
问题:
1: 在使用 printf 进行调试过程中,发现未添加 ‘\n’ 时不会产
全部评论 (0)
还没有任何评论哟~
