第八周课上额外项目:pwd的实现

时间:2024-01-16 22:19:56

项目要求:

1 学习pwd命令

2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码

3 实现mypwd

4 测试mypwd

并且上交博客链接。

实验步骤

我首先不懂pwd到底是个啥,于是我就查了一下man文档:

第八周课上额外项目:pwd的实现

得知,pwd命令的功能是绝对路径的方式显示用户当前工作目录,

man文档有很多帮助信息,比如各类参数的用法,而且如果没有特定指定参数的话,默认是-P的。

而且老师还提醒过,抄别人代码时要是那个人用的是绝对路径,抄到自己的电脑里的时候就错了,所以要把代码搞明白之后再抄,但是那个人用的是相对路径的话就没问题了。

试试pwd命令的用法:

第八周课上额外项目:pwd的实现

开始实现:

我注意到SEE ALSO这里有一个getpwd()的命令,

第八周课上额外项目:pwd的实现

通过查看帮助文档得知,getcwd的功能是得当前的工作目录的绝对路径复制到参数buffer所指的内存空间中,参数maxlen为buffer的空间大小。头文件为#include <unistd.h>

伪代码如下:

char buf[128];
getcpwd(buf,sizeof(buf));
printf buf;

代码实现:

#include "stdio.h"
#include "unistd.h"
int main()
{
char buf[128];
getcwd(buf,sizeof(buf));
printf("%s\n",buf);
return 0;
}

测试截图:

第八周课上额外项目:pwd的实现