实现mypwd
任务列表
- 推荐在openEuler中完成
- 学习pwd命令
- 研究pwd实现需要的系统调用(man -k; grep),写出伪代码
- 实现mypwd
- 测试mypwd
1 学习pwd
Linux pwd(英文全拼:print work directory) 命令用于显示工作目录。
执行 pwd 指令可立刻得知您目前所在的工作目录的绝对路径名称。
语法
pwd [--help][--version]
参数说明
- --help 在线帮助。
- --version 显示版本信息。
- -L 如果 PWD 环境变量包含了不包含文件名 .(点)或 ..(点点)的当前目录的绝对路径名,则显示 PWD 环境变量的值。否则,-L 标志与 -P 标志一样运行。
- -P 显示当前目录的绝对路径名。与 -P 标志一起显示的绝对路径不包含在路径名的绝对路径中涉及到符号链接类型的文件的名称。
2 研究pwd实现需要的系统调用(man -k; grep),写出伪代码
man pwd
man -k pwd
man --help
man -k directory | grep 2
通过这条命令,我们找到了getcwd()函数,其功能为获得当前的工作目录,与pwd命令功能一致,故判断getcwd()为pwd命令的系统调用
伪代码
创建一个字符串数组储存pwd要显示的绝对路径
使用系统调用getcwd()
if (返回指针==NULL)
调用出错,返回error
else
打印目录
3 使用系统调用getcwd()实现pwd
#include <stdio.h>
#include <unistd.h>
int main(void)
{
char path[256];
getcwd(path,sizeof(path));
printf("工作区路径:%s\n",path);
return 0;
}
4 测试结果
#include <stdio.h>
#include <unistd.h>
int main(void)
{
char path[1000];
getcwd(path,sizeof(path));
printf("工作区路径:%s\n",path);
return 0;
}
使用pwd与系统调用实现pwd的效果一致