Linux下C編程:linux檔案組織資訊

來源:互聯網
上載者:User

與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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.