首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

ldd3书中的一个有关问题

2012-02-13 
ldd3书中的一个问题地61页,得scull注册代码中cdev_init()之前是不是应该加一句structcdevdev- cdevcdev_

ldd3书中的一个问题
地61页,得scull注册代码中cdev_init()之前是不是应该加一句
struct   cdev   dev-> cdev   =   cdev_alloc();
如果不用加,为什么?

[解决办法]
如果你想在运行时获得一个独立的 cdev 结构, 你可以为此使用这样的代码:

struct cdev *my_cdev = cdev_alloc();
my_cdev-> ops = &my_fops;

但是, 偶尔你会想将 cdev 结构嵌入一个你自己的设备特定的结构; scull 这样做了. 在这种情况下, 你应当初始化你已经分配的结构, 使用:

void cdev_init(struct cdev *cdev, struct file_operations *fops);


所以cdev_alloc和cdev_init是分别针对两种不同情况的,建议楼主看好ldd上下文~~~~~

热点排行