20155325 加分作业 实现pwd

要求

1 学习pwd命令
2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码
3 实现mypwd
4 测试mypwd

准备

思路

问题

1.如何获取当前目录的节点号
Linux stat函数讲解(获取文件详细信息)

根据以上博客,我改了个小程序,结果如下

2.如何打开当前目录
opendir(".");

3.如何读取当前目录
readdir();

2.如何改变当前工作目录
chdir();

3.如何判定已进入根目录

inode == father_inode

4.如何存储路径并能利于直观调试

我设置了一个二维数组path[][],每一组存当前目录的名字

path[h][],在不同地方输出h就知道走到哪一层,最后一个存了几个路径。

顺序

递归:
{

  1. 获取当前目录和父目录的inode节点号
  2. 把当前的工作目录变成父目录
  3. 获取子目录的名字
  4. 如果1.的两个节点号相等则进入了根目录,退出输出。
  5. 递归

}

截图

代码

mypwd

参考资料:

posted @ 2017-11-19 22:19  难能可贵成功犯傻  阅读(240)  评论(0编辑  收藏  举报