stat命令的实现-mysate(必做)

作业要求

学习使用stat(1),并用C语言实现
1. 提交学习stat(1)的截图
2. man -k ,grep -r的使用
3. 伪代码
4. 产品代码 mystate.c,提交码云链接
5. 测试代码,mystat 与stat(1)对比,提交截图

过程

1. 提交学习stat(1)的截图


使用stat命令:

2. man -k ,grep -r的使用

man -k 的使用

使用man -k stat | grep file查找与stat(状态)和file(文件)相关的内容,找到了如下内容。

非常多的内容,其中,我们进一步了解名为stat的系统调用。

man 2 stat查看学习。

发现通过使用stat系统调用,会返回一个结构体,其中包含了我们需要输出的信息。按理说只要根据文件路径获取到这个结构体,然后再进行格式化输出就可以了。

grep -r 的使用

在编写代码的过程中,会遇到很多不知道的类型和宏定义,需要使用grep -r xx /usr/include
如:第二个需要输出的,是文件大小。

发现有一个变量:st_size不清楚其类型意义。使用grep -r st_size /usr/include查询。

3. 伪代码

1.判断输入中是否包含文件参数,如果有则继续,没有则提示用户输入错误
2.声明结构体,并调用stat()函数给结构体赋值
3.逐个取出结构体中的数据并输出即可
4.注意文件的mode需要switch来判断

4. 产品代码 mystate.c,提交码云链接

https://gitee.com/ye_jia_xing/system-programming/blob/master/week09/mystat/mystat.c

5. 测试代码,mystat 与stat(1)对比,提交截图

posted @ 2021-11-06 21:03  叶家星  阅读(54)  评论(0编辑  收藏  举报