作业要求
学习使用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