mypwd
1、学习pwd命令
- 在终端中输入 man pwd 学习pwd的帮助文档:
pwd: pwd [-LP]
打印当前工作目录的名字。
选项:
-L 打印 $PWD 变量的值,如果它包含了当前的工作目录
-P 打印当前的物理路径,不带有任何的符号链接
默认情况下,`pwd' 的行为和带 `-L' 选项一致
2、研究pwd实现需要的系统调用(man -k; grep),写出伪代码
- 终端中输入 man -k dir | grep 2 ,查找与显示当前路径相关的系统调用函数。发现一个函数:getcwd() ,和pwd有关:
- 在终端中输入man 3 getcwd 查看与c语言相关的帮助文档:
- mypwd可以通过调用getcwd实现,伪代码如下:
#include <stdio.h> #include <unistd.h> 调用函数getcwd() if (返回的指针==NULL) 调用函数出错,打印error else 打印结果
3、实现mypwd
#include "stdio.h" #include "unistd.h" int main(void) { char buf[256]; getcwd(buf,sizeof(buf)); printf("当前路径为:%s\n",buf); return 0; }
4、测试mypwd