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上下文~~~~~