起因:因为在做模块实验时要对register_chrdev函数绘画流程图,于是我就想着去找找看到底这个函数在哪。
首先根据这个笔记来看,Linux内核API register_chrdev|极客笔记 (deepinout.com)
应该在linux/fs.h这个头文件里,于是我就去
cd /usr/include/linux/fs.h
这里面查看,但是我没看到关于这个函数的定义,全是宏定义和结构体,于是有三种可能
1.头文件不是这个头文件
于是我查看代码,挑了一个看起来也挺符合要求的头文件cdev.h,
在同路径下cat cdev.h,发现这里并没有这个文件
于是路径不对的可能性更高了。
2.路径不对
于是使用find函数查找,果然跳出来了很多fs的路径
sudo find -name "fs.h"
然后因为使用vim查找效率太低了,因为我试了一下他的查找只能查屏幕上显示的那一部分代码(应该有vim的其他模式可以查找但是我没去查看),反正我虚拟机也有图形界面,那我就可以直接使用自带的文本编辑器,然后查找起来就非常的方便,但是怎么在命令行中使用呢?
我去查看文本编辑器的关于,得到了他的名字,于是在命令行中尝试了 gedit path的方法即用此打开了fs文件。
gedit ./usr/src/linux-hwe-5.15-headers-5.15.0-67/include/linux/fs.h
问题解决,实现如同上面的博客所言,register_chrdev调用的是__register_chrdev。