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查看相关使用帮助。
2.查找相关内容
kali中的man 1 stat
可以看到,stat的作用是显示文件或文件系统的状态。
展示内容有:文件名、文件大小、所占区块大小、输入输出块大小、文件()、设备、Inode、链接数、权限、Uid、Gid、权限创建、修改时间。
查询互联网上的man手册:https://www.man7.org/linux/man-pages/man1/stat.1.html
2.使用man -k查询相关系统调用。
man 2 stat查询帮助文档。
查询man 7 inode查看文件类型
权限
birth time
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