首页 > 其他分享 >mypwd

mypwd

时间:2022-10-19 15:25:36浏览次数:53  
标签:getcwd number 绝对路径 命令 pwd mypwd

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

提交过程博客的链接或截图
 1.学习pwd命令 ·pwd命令功能为输出当前所在工作目录的绝对路径名称 ·绝对路径和相对路径   绝对路径:从根目录开始直到文件位置 相对路径:相对于程序当前所在目录到文件位置

 

 2.系统手册的查询

·man pwd命令查看pwd的详细功能

 

   ·pwd中有两个带参数的执行方式分别为pwd -l和pwd -p

      pwd -l功能为从环境中执行PWD命令,即使它包含符号链接

      pwd -p功能为避免所有符号链接,执行pwd命令。

分别执行两个命令,结果无区别,发现是因为路径中无特殊符号链接

 

 通过man getcwd命令查看getcwd函数功能

 

 

  • char *getcwd(char *buf, size_t size); 该函数的第一个参数为数组首地址,第二个参数为空间值;

  • 该函数返回一个以null结尾的字符串,其中包含一个绝对路径名,该路径名是调用进程的当前工作目录。

3.使用getcwd命令实现pwd功能

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(void)
{
    char buf[1024];

    char *cwd =getcwd(buf, sizeof(buf));

    if (cwd == NULL) {
        perror("Get cerrent working directory fail.\n");
        exit(-1);
    } else {
        printf("%s\n", cwd);
    }

    return 0;
}

测试结果:

 

·伪代码

获取初始目录名称
next:
    获取当前目录的icode_number
    通过chdir() 返回上一级目录
    获得上一级目录的icode_number_ago
    icode_number==icode_number_ago ?
    不相等:
        获取当前目录名称
        返回next
    相等
        已经找到根目录,输出绝对路径

 

 

标签:getcwd,number,绝对路径,命令,pwd,mypwd
From: https://www.cnblogs.com/syf0105/p/16806339.html

相关文章