c语言小数加分,20155308 加分项——C语言实现Linux的pwd命令

本文介绍了如何使用C语言实现Linux的pwd命令。通过学习pwd命令的基本功能和选项,结合man页找到getcwd()系统调用,编写了伪代码和实际的C代码实现。代码实现了打印当前工作目录的物理路径,并通过测试展示了其实现效果,加深了对pwd命令的理解。
摘要由CSDN通过智能技术生成

20155308 加分项——C语言实现Linux的pwd命令

实现要求

学习pwd命令

什么是pwd

pwd‘ 代表的是‘Print Working Directory’(打印当前目录)。如它的名字那样,‘pwd’会打印出当前工作目录,或简单的来说就是当前用户所位于的目录。它会打印出以根目录 (/)为起点的完整目录名(绝对目录)。

基本语法

pwd [OPTION]

详细用法

利用man pwd查看pwd的用法

add72be320dddff80556a1604e80c5cd.png

常用实例

实例1:用pwd命令查看默认工作目录的完整路径

9d9c0e33d41295d896a0126cb7a1e99b.png

实例2:使用 pwd 命令查看指定文件夹

1831f211adc34bf2fe13bf3f89d66a3f.png

实例3:/bin/pwd

命令:/bin/pwd [选项]

选项:

-L 目录连接链接时,输出连接路径

-P 输出物理路径

输出:

[root@localhost init.d]# /bin/pwd

/etc/rc.d/init.d

[root@localhost init.d]# /bin/pwd --help

[root@localhost init.d]# /bin/pwd -P

/etc/rc.d/init.d

[root@localhost init.d]# /bin/pwd -L

/etc/init.d

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

首先输入命令

man -k directory | grep 2

查看

9293db2f0e1b2a0362f735ebda129599.png

发现getcwd()函数符合条件后,查看其用法

176ab9d67bbf10db6b346318e97bbfed.png

伪代码为:

定义一个字符串数组储存绝对路径

调用函数getcwd()

if (返回的指针==NULL)

调用函数出错,发出错误报告

else

打印结果

代码实现

#include

#include

#include

#include

#include

#include

void printpath();

char *inode_to_name(int);

int getinode(char *);

int main()

{

printpath();

putchar('\n');

return ;

}

void printpath()

{

int inode,up_inode;

char *str;

inode = getinode(".");

up_inode = getinode("..");

chdir("..");

str = inode_to_name(inode);

if(inode == up_inode) {

// printf("/%s",str);

return;

}

printpath();

printf("/%s",str);

}

int getinode(char *str)

{

struct stat st;

if(stat(str,&st) == -1){

perror(str);

exit(-1);

}

return st.st_ino;

}

char *inode_to_name(int inode)

{

char *str;

DIR *dirp;

struct dirent *dirt;

if((dirp = opendir(".")) == NULL){

perror(".");

exit(-1);

}

while((dirt = readdir(dirp)) != NULL)

{

if(dirt->d_ino == inode){

str = (char *)malloc(strlen(dirt->d_name)*sizeof(char));

strcpy(str,dirt->d_name);

return str;

}

}

perror(".");

exit(-1);

代码测试

695a2ee6a48e19a3176a02f74aa24c5b.png

实验感想

上课老师讲过了pwd的用法,下课我们用过这个学习,让我更好地明白了pwd的各种功能以及代码实现过程。

加分项——C语言实现Linux的pwd命令

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

20155212 C语言实现linux下pwd命令的两种方法

20155212 C语言实现linux下pwd命令的两种方法 学习pwd命令 通过man pwd命令查看 pwd [OPTION],一般不加参数 -P显示当前目录的物理路径 -L显示当前目录的连接路径 ...

玩转Linux之pwd命令

玩转Linux之pwd命令 你有没有遇到过需要知道当前所在目录却无从得知?有没有想要复制出当前所在目录层次却不知如何下手?俗话说有困难找警察,想知道目录层次自然要找pwd了.那么问题来了: 什么是pw ...

Linux的pwd命令详解

在Linux层次结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录.然而,没有提示符来告知用户目前处于哪一个目录中.想要知道当前所处的目录, ...

# 2017-2018-1 20155224 加分项-实现mypwd

2017-2018-1 20155224 加分项-实现mypwd 1. 学习pwd命令 pwd命令以绝对路径的方式显示用户当前工作目录.命令将当前目录的全路径名称(从根目录)写入标准输出.全部目录使用 ...

20155222 c语言实现pwd命令

20155222 c语言实现linux的pwd命令 1.学习pwd命令在Linux层次结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录.然 ...

20155322 2017-2018-1《信息安全系统设计》第九周 Linux命令:pwd命令学习与简单实现

pwd命令学习 功能 Linux中用 pwd 命令来查看"当前工作目录"的完整路径. 格式 pwd [选项] 实例 用 pwd 命令查看默认工作目录的完整路径: 用 pwd 命令查 ...

Linux中grep命令的12个实践例子

grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和 ...

每天一个linux命令(3):pwd命令

Linux中用 pwd 命令来查看”当前工作目录“的完整路径. 简单得说,每当你在终端进行操作时,你都会有一个当前工作目录. 在不太确定当前位置时,就会使用pwd来判定当前目录在文件系统内的确切位置. ...

随机推荐

Laravel大型项目系列教程(四)显示文章列表和用户修改文章

小编心语:不知不觉已经第四部分了,非常感谢很多人给小编提的意见,改了很多bug,希望以后能继续帮小编找找茬~小编也不希望误导大家~这一节,主要讲的 是如何显示文章列表和让用户修改文章,小编预告一下(一 ...

两系统用asp.net forms 身份验证方式实现跨域登录信息共享

1.两个系统的 web.config 都配置为 forms 验证方式( system.web —> authentication 节点) 2.在两个系统的Web.config里配置相同的 sys ...

CXF学习(2) helloworld

0.新建一个项目取名wsserver. pom.xml 文件如下

python ConfigParser配置读写

一.ConfigParser简介 ConfigParser 是用来读取配置文件的包.配置文件的格式如下:中括号"[ ]"内包含的为section.section 下面为类似于key ...

mozilla css developer center

https://developer.mozilla.org/en-US/docs/Web/CSS

java web 学习十六(JSP指令)

一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...

BeanFactory与FactoryBean

1. BeanFactory BeanFactory定义了 IOC 容器的最基本形式,并提供了 IOC 容器应遵守的的最基本的接口,也就是Spring IOC 所遵守的最底层和最基本的编程规范.在  ...

Oracle分析函数之开窗子句-即WINDOWING子句

Oracle的分析函数,对我们进行统计有很大的帮助,可以避免一些子查询等操作,在统计中,我们对开窗函数的接触较少,下面主要介绍下开窗函数的使用; http://www.itpub.net/thread ...

hdu1115(重力算法的多边形中心)

标题的含义: 给定一个n刚n顶点.这是获得n分众协调多边形. http://acm.hdu.edu.cn/showproblem.php? pid=1115 题目分析: /** *出处:http:// ...

Oracle常用语句记录

交集/差集/合集 select * from tb_a intersect minus union all select * from tb_b 条件分支 decode() 例如:搜索条件没有手机就查 ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值