- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言实现ls-l功能.doc
Linux下C语言实现ls -l功能
需求:用ls -l显示文件夹下所有的文件及属性
分析:1 用ls显示文件夹下的所有文件,首先用opendir打开文件夹,再用readdir读取文件夹里面的文件,最后closedir关闭文件夹。
2 用ls -l比较复杂,打印出来的内容包括:(文件属性+文件名) 由以下几部分构成——文件的类型(d——目录文件 -——文本文件...)文件的可执行权限 所属组的权限,其它组的权限 硬链接数 文件拥有者 文件拥有者组 文件大小 时间 文件名
解决方案:
1. 要想实现ls -l就得知道通过什么系统调用获取文件信息,首先自然是要通过man来查找相关的系统调用。
man -k file|grep status
man -k file|grep information
man -k file|grep info
通过上面的有哪些信誉好的足球投注网站就可以得到stat这个系统调用获取文件属性。
man 2 stat获取系统调用的详细使用方法:
#include sys/types.h
#include sys/stat.h
#include unistd.h
struct stat {
dev_t st_dev; /* ID of device containing file */
ino_t st_ino; /* inode number */
mode_t st_mode; /* protection */
nlink_t st_nlink; /* number of hard links */
uid_t st_uid; /* user ID of owner */
gid_t st_gid; /* group ID of owner */
dev_t st_rdev; /* device ID (if special file) */
off_t st_size; /* total size, in bytes */
blksize_t st_blksize; /* blocksize for file system I/O */
blkcnt_t st_blocks; /* number of 512B blocks allocated */
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last status change */
};
只要通过相应字段进行格式处理就行啦!
2.权限处理:st_mode就是文件的权限部分。St_mode本身就是一个16位的二进制,前四位是文件的类型,紧接着三位是特殊权限,左后九位就是ls -l列出来的九个权限。
linux本身提供了很多测试宏来测试文件的类型的#define __S_IFMT 0170000 /* These bits determine file type. */
/* File types. */
#define __S_IFDIR 0040000 /* Directory. */
#define __S_IFCHR 0020000 /* Character device. */
#define __S_IFBLK 0060000 /* Block device. */
#define __S_IFREG 0100000 /* Regular file. */
#define __S_IFIFO 0010000 /* FIFO. */
#define __S_IFLNK 0120000 /* Symbolic link. */
#define __S_IFSOCK 0140000 /* Socket. */
利用上面的测试宏就可以判断文件的类型,至于文件的权限部分可以使用掩码的方式来处理。
具体代码如下
您可能关注的文档
- CloudResearch(云服务)_05.doc
- CloudResearch(云服务)_08.doc
- CloudResearch(云服务)_09.doc
- CloudResearch(云服务)_10.doc
- CloudResearch(云服务)_11.doc
- CloudResearch(云服务)_12.doc
- CloudResearch(云服务)_13.doc
- CloudResearch(云服务)_15.doc
- CloudResearch(云服务)_18.doc
- CloudResearch(云服务)_19.doc
- 2025年高考语文作文高分素材运用:从“北京条约”到“北京宣言“.pdf
- 2025年新高考英语二轮复习:新高考英语应用文写作提分技能类型模板.pdf
- 咨询工程师(投资)知识考试题库.pdf
- 海南省部分学校2024-2025学年高三年级上册学业水平诊断 化学试题.pdf
- 2024年安全例会制度.pdf
- 新高考九省专用2024年高考语文押题预测卷二(原卷版+解析版).pdf
- 2024年安全生产的管理制度.pdf
- 2024年世界职业院校技能大赛高职组“声乐、器乐表演组”赛项参考试题库(含答案).pdf
- 2024年中学生禁毒知识竞赛题库及答案(共80题).pdf
- 成都某中学2024-2025学年度上期高三定时练习 物理试题(含答案).pdf
文档评论(0)