inode 結構體分析

來源:互聯網
上載者:User

      inode
結構由核心在內部用來表示檔案.因此,它和代表開啟檔案描述符的檔案結構是不同的.可能有代表單個檔案的多個開啟描述符的許多檔案結構,但是它們都指向一個單個inode
結構.

inode
結構包含大量關於檔案的資訊.作為一個通用的規則,這個結構只有
2個成員對於編寫驅動代碼有用:

(1)dev_t i_rdev;

            對於代表裝置檔案的節點,這個成員包含實際的裝置編號.

(2)struct cdev *i_cdev;

        struct cdev
是核心的內部結構,代表字元裝置;這個成員包含一個指標,指向這個結構,當節點指的是一個字元裝置檔案時.i_rdev類型在
2.5開發系列中改變了,破壞了大量的驅動.作為一個鼓勵更可移植編程的方法,核心開發人員已經增加了2
個宏,可用來從一個
inode中擷取主次編號:

unsigned int iminor(struct inode *inode);

unsigned int imajor(struct inode *inode);

為了不要被下一次改動抓住,應當使用這些宏代替直接操作i_rdev.

注意,release
不是每次進程調用close
時都被調用.無論何時共用一個檔案結構(例如,在一個

fork
或dup 之後),release
不會調用直到所有的拷貝都關閉了.如果你需要在任一拷貝關閉時重新整理掛著的資料,你應當實現
flush方法.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.