当前位置:天才代写 > tutorial > C语言/C++ 教程 > Linux下C编程:linux文件组织信息

Linux下C编程:linux文件组织信息

2017-11-02 08:00 星期四 所属: C语言/C++ 教程 浏览:437

与Linux 系统中的文件相关的信息有三项。它们是文件的目次布局、索引节点和文件的数据自己。

1.文件的目次布局

系统的每一个目次都处于必然的目次布局中,该布局含有目次中所有的目次项的列表,每一个目次项都含有一个名称和索引节点。借助于名称,应用措施可以会见目次项的内容。而索引节点号则提供了所需引用文件自身的信息。

2.索引节点

在Linux 系统中,所有的文件都有一个与之相连的索引节点(inode)。索引节点是用来生存文件信息的。索引节点包括如下信息。

在linux2.6.39/include/asm-generic/stat.h中界说了stat 布局体来存放这些信息。stat 布局的界说如下。

struct stat     
         
{     
dev_t st_dev; /*device*/ 
         
ino_t st_inl; /*inode*/ 
         
mode_t st_mode; /*projection*/ 
         
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 type(if inode device)*/ 
         
off_t st_size; /*total size,in bytes*/ 
         
unsigned long st_blksize; /*blocksize for filesystem*/ 
         
unsigned long st_blocks; /*number of 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 change*/ 
         
};

可以通过系统挪用会见stat 布局来获取索引节点的相关信息。

注:从索引节点包括的信息中,可以看到两个参数st_dev 和st_rdev。它们具有差异的寄义。st_dev 对应于每一个文件名,代表包括这个文件名和相应的索引节点的文件系统的设备号。st_rdev 则只有字符设备文件或块设备文件才具有,暗示的是实际设备的设备号。

3.数据

凡是文件中都包括有必然的数据。普通文件和目次文件都有相应的硬盘区域储存数据。这些数据是储存在由索引节点指定的位置上的。而其他一些非凡文件,如设备文件等,并不具有这样的在硬盘上的储存区域。

查察全套文章:http://www.bianceng.cn/Programming/C/201212/34807.htm

 

    关键字:

天才代写-代写联系方式