码迷,mamicode.com
首页 > 其他好文 > 详细

struct dirent/DIR

时间:2014-10-13 00:45:08      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:io   os   使用   ar   文件   sp   div   on   cti   

#include <dirent.h>
struct dirent {
     long d_ino;//inode number索引节点号
     off_t d_off;//offset to this dirent 在目录文件中的偏移
     unsigned short d_reclen;//length of this d_name 文件名长
     unsigned char d_type;//the type of d_name 文件类型
     char d_name[NAME_MAX+1];//文件名,最长256字节
}
一般以函数strcut dirent *dp=readdir(DIR)返回来得到。
从上述也能看到dirent的内容比较少,所以dirent同样也是起着一个索引的作用,如果想获得ls -l那种效果的文件信息,必须要靠stat函数。
 
struct _dirstream {
     void *_fd;
     char *_data;
     int _entry_data;
     char *_ptr;
     int _entry_ptr;
     size_t _allocation;
     size_t __size;
     __libc_lock_define(, __lock);
};
typedef struct _dirstream DIR;
函数DIR* opendir(const char* pathname),打开文件目录,返回DIR结构体的指针。
具体使用函数:strcut dirent* readdir(DIR* dp);
void rewinddir(DIR *dp);
int closedir(DIR *dp);
long telldir(DIR *dp);
void seekdir(DIR* dp, long loc);
 
 
通过readdir函数读取到的文件名存储在结构体dirent的d_name中,而函数 int stat(const char *file_name, struct stat *buf);的作用就是获取文件名为d_name的文件的详细信息
strcut stat {
     mode_t st_mode;//文件访问权限
     ino_t st_ino;//索引节点号
     dev_t st_dev;//文件使用的设备号
     dev_t st_rdev;//设备文件的设备号
     nlink_t st_nlink;//文件的硬连接数
     uid_t st_uid;//所有者用户识别号
     gid_t st_gid;//组识别号
     off_t st_size;//以字节为单位的文件容量
     time_t st_atime;//最后一次访问文件的时间
     time_t st_mtime;//最后一次修改该文件的时间 
     time_t st_ctime;//最后一次改变该文件状态的时间
     blksize_t st_blksize;//包含该文件的磁盘块的大小
     blkcnt_t st_blocks;//该文件所占用的磁盘块
}

struct dirent/DIR

标签:io   os   使用   ar   文件   sp   div   on   cti   

原文地址:http://www.cnblogs.com/wizzhangquan/p/4021205.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!