



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘自:/2012/05/13/linux-system-function-files-operation/最近在看Linux下文件操作相关章节,遇到了这么几个结构体,被搞的晕乎乎的,今日有空,仔细研究了一下,受益匪浅。首先说说DIR这一结构体,以下为DIR结构体的定义:1. struct_dirstream 2. 3. void*_fd; 4. char*_data; 5. int_entry_data; 6. char*_ptr; 7. int_entry_ptr; 8. size_t_allocation; 9. size_t_size; 10. _libc_lock_define(,_lock) 11. ; 12. 13. typedefstruct_dirstreamDIR;DIR结构体类似于FILE,是一个内部结构,以下几个函数用这个内部结构保存当前正在被读取的目录的有关信息(摘自UNIX环境高级编程(第二版)。函数 DIR *opendir(const char *pathname),即打开文件目录,返回的就是指向DIR结构体的指针,而该指针由以下几个函数使用:1. structdirent*readdir(DIR*dp); 2. 3. voidrewinddir(DIR*dp); 4. 5. intclosedir(DIR*dp); 6. 7. longtelldir(DIR*dp); 8. 9. voidseekdir(DIR*dp,longloc);关于DIR结构,我们知道这么多就可以了,没必要去再去研究他的结构成员。接着是dirent结构体,首先我们要弄清楚目录文件(directory file)的概念:这种文件包含了其他文件的名字以及指向与这些文件有关的信息的指针(摘自UNIX环境高级编程(第二版)。从定义能够看出,dirent不仅仅指向目录,还指向目录中的具体文件,readdir函数同样也读取目录下的文件,这就是证据。以下为dirent结构体的定义:1. structdirent 2. 3. longd_ino;/*inodenumber索引节点号*/4. 5. off_td_off;/*offsettothisdirent在目录文件中的偏移*/6. 7. unsignedshortd_reclen;/*lengthofthisd_name文件名长*/8. 9. unsignedchard_type;/*thetypeofd_name文件类型*/10. 11. chard_nameNAME_MAX+1;/*filename(null-terminated)文件名,最长255字符*/12. 从上述定义也能够看出来,dirent结构体存储的关于文件的信息很少,所以dirent同样也是起着一个索引的作用,如果想获得类似ls -l那种效果的文件信息,必须要靠stat函数了。通过readdir函数读取到的文件名存储在结构体dirent的d_name成员中,而函数int stat(const char *file_name, struct stat *buf);的作用就是获取文件名为d_name的文件的详细信息,存储在stat结构体中。以下为stat结构体的定义:1. structstat 2. 3. mode_tst_mode;/文件访问权限4. 5. ino_tst_ino;/索引节点号6. 7. dev_tst_dev;/文件使用的设备号8. 9. dev_tst_rdev;/设备文件的设备号10. 11. nlink_tst_nlink;/文件的硬连接数12. 13. uid_tst_uid;/所有者用户识别号14. 15. gid_tst_gid;/组识别号16. 17. off_tst_size;/以字节为单位的文件容量18. 19. time_tst_atime;/最后一次访问该文件的时间20. 21. time_tst_mtime;/最后一次修改该文件的时间22. 23. time_tst_ctime;/最后一次改变该文件状态的时间24. 25. blksize_tst_blksize;/包含该文件的磁盘块的大小26. 27. blkcnt_tst_blocks;/该文件所占的磁盘块28. 29. ;这个记录的信息就很详细了吧,呵呵。最后,总结一下,想要获取某目录下(比如a目下)b文件的详细信息,我们应该怎样做?首先,我们使用opendir函数打开目录a,返回指向目录a的DIR结构体c。接着,我们调用readdir( c)函数读取目录a下所有文件(包括目录),返回指向目录a下所有文件的di
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件汇报表格
- 车间导师师傅培训
- 环宇物流文员培训
- 特教语言课课件
- 枇杷美术创意课件
- 创意美术花瓶课件
- 课件最后的人生寄语
- 课件显示无法复制问题
- 雷达液位计考试题及答案
- 蓝山教练考试题及答案
- 古诗词诵读教学设计与实施方案
- 重庆市南开中学高2026届高三第一次质量检测+数学答案
- GJB135B-2021合成航空发动机润滑油规范
- 商业航天行业深度报告:政策技术需求共振商业航天赛道加速
- 小学科学新教科版二年级上册第一单元 造房子教案(共6课)(2025秋)
- 《系统工程》课件 胡祥培 第1-3章 绪论、系统工程相关理论、系统工程方法论
- 《人工智能基础》课件-AI的前世今生:她从哪里来
- 四川普通高中会考英语试卷及答案
- 营造林技能竞赛试题及答案
- 科比受伤及励志
- JIS G4305-2021 冷轧不锈钢板材、薄板材和带材
评论
0/150
提交评论