stat命令的实现-mysate

# stat命令的实现-mysate

任务详情

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

1.学习过程

​ 由于man 1 手册的缺失,无法查看帮助文档,只能使用help查看相关使用帮助。

image-20211104173555441 image-20211104173635623

2.查找相关内容

​ kali中的man 1 stat

image-20211104180523923

​ 可以看到,stat的作用是显示文件或文件系统的状态。

image-20211104173844775

​ 展示内容有:文件名、文件大小、所占区块大小、输入输出块大小、文件()、设备、Inode、链接数、权限、Uid、Gid、权限创建、修改时间。

​ 查询互联网上的man手册:https://www.man7.org/linux/man-pages/man1/stat.1.html

2.使用man -k查询相关系统调用。

image-20211104174630137

​ man 2 stat查询帮助文档。

image-20211104185217617

查询man 7 inode查看文件类型

image-20211104191552753

image-20211104202104656

权限

image-20211104203600957

birth time

image-20211104203712510

3.伪代码

1.将文件传入系统调用stat()。

2.打印输出stat中的结构体内容。

4.运行截图

改进了Access,能够输出文件的acl表。

参考博客:https://blog.csdn.net/lyh__521/article/details/38270659

还不能输出birth time,不知道如何使用系统调用int statx(int dirfd, const char *restrict pathname, int flags,unsigned int mask, struct statx *restrict statxbuf);

其中的参数dirfd,mask不知道从何获取。

dirfd的获取需要使用库函数dirfd,需要获取当前目录的路径和路径缓存字符大小。

参考博客:https://www.cnblogs.com/Jimmy1988/p/7491236.html#1-获取当前工作路径--getcwd

image-20211104215421126

5.代码链接

https://gitee.com/sister_ben/kali/tree/master/mystat

posted @ 2021-11-04 22:09  20191310李烨龙  阅读(96)  评论(0编辑  收藏  举报