随笔 - 36  文章 - 1  评论 - 7  阅读 - 7274

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\n",buff);
    return 0;
}

posted on   20175311胡济栋  阅读(370)  评论(0编辑  收藏  举报
编辑推荐:
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
阅读排行:
· 手把手教你更优雅的享受 DeepSeek
· AI工具推荐:领先的开源 AI 代码助手——Continue
· 探秘Transformer系列之(2)---总体架构
· V-Control:一个基于 .NET MAUI 的开箱即用的UI组件库
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示