20165202 Mypwd

Posted jhs888

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20165202 Mypwd相关的知识,希望对你有一定的参考价值。

实现mypwd(选做,加分)

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

提交过程博客的链接


实现过程

  1. 使用man -k pwd查看pwd在man手册中的说明。手册里的介绍是:
    pwd (1) - print name of current/working directory
    pwd命令的作用是p(rint name of )w(orking) d(irectory),打印正在工作或者最近的文件夹名。具体的使用方法是直接在终端中输入pwd,然后在下方会打印出正在工作或者最近的文件名。

运行man -k pwd

技术分享图片

运行pwd:

技术分享图片

  1. 使用man pwd查看pwd命令的具体说明发现pwd命令是属于1类命令,即应用命令不是之前的2类系统调用。如果要打印文件信息,采用c语言核心命令是stat()函数,文件的相关信息会记录在文件系统里,stat()函数的作用就是读取文件系统里的信息。

运行man pwd

技术分享图片

代码核心函数:


main函数:主函数

get_inode函数:取某个文件的索引信息(进入点)

printpathto函数:打印路径

inum_to_name函数:将长整型的索引信息转化为字符串的形式

  1. 通过以上的分析对pwd进行编写,其中参考了pwd的源代码。

  2. 我们在home主文件夹中创建了一个pwd文件夹,在里面放置了pwd.c的代码并进行了编译运行,显示的运行文件路径是/home/linux/pwd,然后再使用使用Linux中的pwd查看当前运行文件路径也是/home/linux/pwd

运行截图:

技术分享图片


学习中遇到的问题

问题1:

Linux中如何获得文件信息?目前文件夹的信息的存在哪里?

解决1:

通过网上的资料得到了stat可以读取系统文件的信息,于是使用man -k stat查看stat的详细资料。这里存在应用和系统调用两个使用方法,可以在pwd中使用stat的系统调用来获得系统文件的信息,并打印出来。

技术分享图片


参考资料

linux stat函数讲解

以上是关于20165202 Mypwd的主要内容,如果未能解决你的问题,请参考以下文章

20165202 第二周测试课下选做

20165202 week10课下补做

20175325 实现mypwd(选做,加分)

2018-2019-1 20165202 《信息安全系统设计基础》第一周学习总结

实现mypwd

20165202 结对编程项目-四则运算 第二周