曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 8553|回复: 0
打印 上一主题 下一主题

inode 结构体

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2009-8-26 17:31:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
内核在内部用 inode 结构体用来表示文件。因此,它和 file structure 用来表示一个打开了的文件描述符并不相同。对于一个文件,可能会有多个 file structure 对应着多个已打开的多个文件描述符,但是这都只能指向同一个 inode 结构。

inode 结构里包含大量关于文件的信息,但一般而言,对于我们编写驱动代码,我们仅对这个结构中的两个域感兴趣:

dev_t i_rdev;
对于表示设备文件的众多结点(inode),此域包含了实际的设备号。

struct cdev *i_cdev;
struct dev 是内核内部用来表示字符设备的结构;当 inode 指向的是一个字符型设备时,这个域就包含了一个指向这个结构的指针。

为了增强可移植性,用以下两个宏从 inode 中获取主设备号和次设备号:
unsigned int iminor(struct inode *inode);
unsigned int imajor(struct inode *inode);

在 2.5 内核里,由于 i_rdev 类型的改变,破坏了许多驱动。所以,为了避免下次再改变带来的麻烦,建议使用上面两个宏,而不是直接对 i_rdev 进行修改。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-3 11:38 , Processed in 0.075354 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表