Chinaunix

标题: 在驱动里面如何打开一个文件 [打印本页]

作者: eveson    时间: 2008-09-25 15:02
标题: 在驱动里面如何打开一个文件
本来我想在应用层打开文件,然后在copy_from_user()放到内核中,但是这样效率低,我想直接在内核态打开一个文件去读到内核态的内存里面,可以kmalloc一段空间去存,如何做到?
作者: eveson    时间: 2008-09-25 15:12
另外驱动里面的函数都要自己来实现,不能调用库的函数,是什么原因啊?
作者: dreamice    时间: 2008-09-25 15:57
原帖由 eveson 于 2008-9-25 15:02 发表
本来我想在应用层打开文件,然后在copy_from_user()放到内核中,但是这样效率低,我想直接在内核态打开一个文件去读到内核态的内存里面,可以kmalloc一段空间去存,如何做到?


你在内核的驱动函数里面能确切定位到你要读的文件,就可以实现了。
作者: dreamice    时间: 2008-09-25 15:59
原帖由 eveson 于 2008-9-25 15:12 发表
另外驱动里面的函数都要自己来实现,不能调用库的函数,是什么原因啊?


linux是一个宏内核操作系统,驱动程序是运行在内核空间的,如果你包含库,就相当于把库也融入到内核了,可想而知,内核将是多么庞大?
作者: eveson    时间: 2008-09-25 17:17
原帖由 dreamice 于 2008-9-25 15:57 发表


你在内核的驱动函数里面能确切定位到你要读的文件,就可以实现了。


怎么样定位到我的文件,用什么函数?
作者: eveson    时间: 2008-09-25 17:18
原帖由 dreamice 于 2008-9-25 15:59 发表


linux是一个宏内核操作系统,驱动程序是运行在内核空间的,如果你包含库,就相当于把库也融入到内核了,可想而知,内核将是多么庞大?


内核包含用户空间的库是不行的,所以需要找一些系统调用吧?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2