20165329 实现mypwd
20165329 实现mypwd
实现要求
1 学习pwd命令
2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码
3 实现mypwd
4 测试mypwd
pwd
pwd是print working directory的缩写,即打印当前路径的意思。打开终端,一定会在执行命令的$号之前看见当前的工作目录,不过一定会出现~在前面或是/etc在后面。此时输入pwd命令就是可以将工作目录完全展开。
伪代码
首先使用一下pwd命令,然后输入 man pwd 以获取pwd命令的相关信息。
然后输入 man -k directory | grep 2 得知一道getcwd()调用函数,而这道函数一定是和pwd命令相关的。
这是函数getcwd()的原型。
那么这个pwd的伪代码描述就是这样的:
一个字符串数组储存绝对路径
调用函数getcwd()
if (返回的指针==NULL)
调用函数出错,发出错误报告
else
打印结果
代码实现
通过伪代码实现就这样了:
#include <stdio.h>
#include <unistd.h>
int main(void)
{
char buff[256];
getcwd(buff,sizeof(buff));
printf("当前路径为:%s\n",buff);
return 0;
}
就没有见过这么简单的,不过不用getcwd()实现pwd命令可能会要更长的代码去实现。
测试代码
测试结果: