程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Linux下C編程:linux文件組織信息

Linux下C編程:linux文件組織信息

編輯:關於C語言

與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.數據

通常文件中都包含有一定的數據。普通文件和目錄文件都有相應的硬盤區域儲存數據。這些數據是儲存在由索引節點指定的位置上的。而其他一些特殊文件,如設備文件等,並不具有這樣的在硬盤上的儲存區域。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved