mypwd

实验环境:openeuler操作系统、ubuntu操作系统

pwd命令学习

pwd命令用于显示工作目录。
执行 pwd 指令可立刻得知我们目前所在的工作目录的绝对路径名称。
使用help pwd来查看pwd的功能

语法

pwd [--help][--version]

参数说明
  • --help 在线帮助。
  • --version 显示版本信息。
示例

查看当前所在目录:
在openeuler终端输入pwd

可见输出了当前用户所在的目录

实现pwd所需要的系统调用

原本在openeuler系统输入命令,发现不适用grep,就用ubuntu查看。

使用man stat命令查看stat功能,我们可知stat函数可以查看文件的相关信息等。

头文件为:include <sys/types.h> #include <sys/stat.h> #include <unistd.h>
函数原型:int stat(const char *path, struct stat *buf)
猜测欲要列出目录信息,肯定还涉及目录的打开和读取,这就需要调用opendir函数,readdir函数,需要用到dirent结构体。

伪代码

1.定义指针打开目录
inode_to_name:
2.如果不为NULL,获取当前目录的inode_number,返回
3.通过chdir() 返回上一级目录up_inode
4.通过比较现在的inode和up_inode,如果相等,就没有上一级目录,即找到了根目录,就打印输出现存绝对路径
5.如果不相等,就获取当前目录名称,返回inode_to_name。

实现pwd



测试mypwd

代码运行结果如下:
可发现和键入pwd命令效果相同。