LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 834|回复: 8

学习编写Linux驱动的一个小问题

[复制链接]
发表于 2007-3-13 12:09:20 | 显示全部楼层 |阅读模式
LDD那本书的第60到61页(中国电力出版社,第三版),书上说的cdev结构在使用前必须分配和初始化。就是利用下面两个函数
struct cdev *my_cdev = cdev_alloc();
cdev_init(struct cdev *cdev,struct file_operations *fops);
来完成的

本人对cdev_init函数的理解是结构体cdev的file_operation元素被fops初始化,但在61页的代码中,在cdev_init初始化之后,却出现了dev->cdev.ops = &scull_fops;这句。

我想问的是如果cdev_init已经将cdev的file_operations元素初始化了,为何还要再赋一次值呢?

还有就是我在google上搜了一下,没找到cdev.c的代码,所以只好来这里看看有没有linux同好可以指点一下.

先谢谢了
发表于 2007-3-14 01:25:31 | 显示全部楼层
敬佩楼主看得真仔细!
我觉得这此处LDD说的是错误的。看下面cdev_init的代码,cdev->ops已经被初始化了。
另外我又查了一些kernel的char driver 的代码,都是cdev_init()之后就马上cdev_add()了。
  1. 411 void cdev_init(struct cdev *cdev, const struct file_operations *fops)
  2. 412 {
  3. 413         memset(cdev, 0, sizeof *cdev);
  4. 414         INIT_LIST_HEAD(&cdev->list);
  5. 415         cdev->kobj.ktype = &ktype_cdev_default;
  6. 416         kobject_init(&cdev->kobj);
  7. 417         cdev->ops = fops;
  8. 418 }
复制代码
回复 支持 反对

使用道具 举报

发表于 2007-3-14 04:27:28 | 显示全部楼层
http://zhllg.spaces.live.com/blog/cns!956A48A2D7ED7265!275.entry
显然是不对的
这些翻译书的,简直渎职啊, 至少加个译注,勘误
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-14 11:31:19 | 显示全部楼层
娘西皮 又被那帮搞翻译的耍了 真是可恨 谢谢楼上的两位了 如果我能够再仔细点。。。。。
回复 支持 反对

使用道具 举报

发表于 2007-3-14 11:35:30 | 显示全部楼层
大部分书翻译得都不咋样。
不过这次跟翻译没关系。我看的是英文的LDD3,也是错的,没有勘误。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-14 11:53:52 | 显示全部楼层
.......多谢楼上的.....
回复 支持 反对

使用道具 举报

发表于 2007-3-14 17:24:33 | 显示全部楼层
Post by biinn
大部分书翻译得都不咋样。
不过这次跟翻译没关系。我看的是英文的LDD3,也是错的,没有勘误。

原作确实是错的
不过如果我是翻译,我会把所有的代码都搞明白,尝试一遍,如果发现这样的错误,我不会就这么放过而不给读者一个交代
回复 支持 反对

使用道具 举报

发表于 2007-3-15 01:00:36 | 显示全部楼层
如果大家都能像zhllg版主这样工作,当然是最理想的。不过我都怀疑大部分翻译可能连英文原文说的是啥都不明白。或者不想明白。呵呵
回复 支持 反对

使用道具 举报

发表于 2007-3-15 09:08:16 | 显示全部楼层
虽然楼上几位老大们的想法是正确的,但是翻译一本这样的书又要去检查每一个错误,这样的工作量是大了一些的。据在下所知,LDD3 中译本的主译者就是 MiniGUI 的作者,并非专职翻译家,因此我们可以理解为是对 Linux 有狂热爱好的 Fans 为了让更多的国人可以看懂经典著作而进行了这样的工作,而像楼主这样找到书中错误的兄弟如果把错误报告给出版社,那么不也同样是为开源事业作出了贡献么。

我想,批评少一些,改进多一些,对大家都有好处。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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