2019-2020-1 20175311 学习pwd实现mypwd

2019-2020-1 20175311 学习pwd实现mypwd

实现要求

1 学习pwd命令
2 研究pwd实现需要的系统调用(man -k | grep ),写出伪代码
3 实现mypwd
4 测试mypwd

学习pwd命令

pwd的意思是Print Working Directory,也就是打印工作目录,意如其名,就是说打印出用户当前所在目录,它会打印出从根目录(/)开始到当前所在目录的完整路径。这条命令是一条shell的内置命令,并且在大多数shell中都可以使用,如bash、Bourne shell,ksh、zsh等等。
1.命令格式:
pwd [选项]
-L –logical 当目录为连接路径时,显示连接路径
-P –physical 显示实际物理路径,而非使用连接(link)路径
--help display this help and exit
--version output version information and exit
根据上述要求在终端中输入pwdpwd -Lpwd -P

pwd命令

pwd是print working directory的缩写,即打印当前路径的意思。打开终端,一定会在执行命令的$号之前看见当前的工作目录,不过一定会出现~在前面或是/etc在后面。此时输入pwd命令就是可以将工作目录完全展开。
输入man pwd就能够查看pwd命令的详细参数,其中就有它的四种类型与用法

使用man -k current directory | grep 2以pwd的相关描述作为关键词进行查找,并筛选系统调用,查找到系统调用命令getcwd 和 readdir

输入man getpwd可以查看GETCWD函数的详细参数


输入man readdir可以查看READDIR函数的详细参数

伪代码描述

一个字符串数组储存绝对路径
调用函数getcwd()
if (返回的指针==NULL)
    调用函数出错,发出错误报告
else
    打印结果

代码实现

#include <stdio.h>
#include <unistd.h>
int main(void)
{
    char buff[256];
    getcwd(buff,sizeof(buff));
    printf("当前路径为:%s
",buff);
    return 0;
}

原文地址:https://www.cnblogs.com/hujidong42/p/12046414.html