您的位置:首页 > 其它

2017-2018-1 20155313 《信息安全系统设计基础》第九周加分项目

2017-11-19 20:05 387 查看

2017-2018-1 20155313 《信息安全系统设计基础》第九周加分项目

实现mypwd(选做,加分)

1 学习pwd命令

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

3 实现mypwd

4 测试mypwd

提交过程博客的链接

实现过程

使用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:



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

运行
man pwd




代码核心函数:

main函数:主函数

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

printpathto函数:打印路径

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


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

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


运行截图:



学习中遇到的问题

问题1:

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

解决1:

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



参考资料

linux stat函数讲解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐