Fork me on GitHub

mypwd

学习任务

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

1. 学习pwd

  • 描述
    pwd 命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用 /(斜线)分隔。第一个 / 表示根目录,最后一个目录是当前目录。
  • 标志
    -L
    如果 PWD 环境变量包含了不包含文件名 .(点)或 ..(点点)的当前目录的绝对路径名,则显示 PWD 环境变量的值。否则,-L 标志与 -P 标志一样运行。
    -P
    显示当前目录的绝对路径名。与 -P 标志一起显示的绝对路径不包含在路径名的绝对路径中涉及到符号链接类型的文件的名称。

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

首先man pwd命令获取pwd命令的相关信息

然后输入 man -k directory | grep 2 得知getcwd()函数

接着查看getcwd的相关信息

那么这个pwd的伪代码描述就是这样的:

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

3. 实现mypwd

代码:

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

4. 测试mypwd

posted @ 2022-10-23 19:24  郭幸坤  阅读(55)  评论(0编辑  收藏  举报
1