当前位置: 技术问答>linux和unix
linux简单字符设备驱动的一点疑问,麻烦前辈进来指点一二!
来源: 互联网 发布时间:2017-03-17
本文导语: 问题是这样,要添加一个字符设备驱动时的步骤是不是如下。。。 先把类似myOpen,myRead,myWrite这些接口自己按照 file_operations 这个结构体里面的函数指针的格式实现了,然后申请设备号,然后注册设备,这样就行了...
问题是这样,要添加一个字符设备驱动时的步骤是不是如下。。。
先把类似myOpen,myRead,myWrite这些接口自己按照 file_operations 这个结构体里面的函数指针的格式实现了,然后申请设备号,然后注册设备,这样就行了。。。。
那我的问题是,当我调用 fopen库函数并指定文件名称时,系统就会按照我的名称去找到它的 file_operations结构然后调用它的 myOpen函数是吧 ?那 open系统调用是不是也是这个道理呢 ?
我想知道它的整个工作流程,该如何去了解?我手头上有linux内核源码,open这个系统调用在哪个源文件啊。。。我该如何去了解它的整个工作流程。。。。问题比较多,比较杂乱,麻烦前辈有点耐心帮忙解答哦,分数一定全部给他!感谢啊!
先把类似myOpen,myRead,myWrite这些接口自己按照 file_operations 这个结构体里面的函数指针的格式实现了,然后申请设备号,然后注册设备,这样就行了。。。。
那我的问题是,当我调用 fopen库函数并指定文件名称时,系统就会按照我的名称去找到它的 file_operations结构然后调用它的 myOpen函数是吧 ?那 open系统调用是不是也是这个道理呢 ?
我想知道它的整个工作流程,该如何去了解?我手头上有linux内核源码,open这个系统调用在哪个源文件啊。。。我该如何去了解它的整个工作流程。。。。问题比较多,比较杂乱,麻烦前辈有点耐心帮忙解答哦,分数一定全部给他!感谢啊!
|
调用open函数的时候,会进行系统调用,然后根据你open函数传递的 fd ,找到你写的file_operations 函数的myOpen,其他到与这类似,你可以看看linux操作系统原理之类的书
|
对,调用open函数的时候就会执行file_operations结构体里对应的open函数。read,write,ioctl函数都一样,linux内核博大精深,我也说不出个一二。