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命令效果相同。