前言
具体步骤
和上一篇的区别仅仅体现在代码上。
第一步:头文件增多了:
LICENSE保持不变即可:
第二步:声明以及编写文件接口函数
查看一下file_operations在Linux源码中的定义:https://elixir.bootlin.com/linux/v5.16/source/include/linux/fs.h#L2069
这些函数以及参数的类型要写对了,下边给函数指针赋值的时候才不会报错。
第三步:创建file_ops函数表
第四步:在init函数中注册字符设备,在exit函数中销毁字符设备:
第五步:编译
效果测试
用我们得到的这个值248,创建设备文件:
之后便可以在/dev目录下找到这个设备文件:
cat一下这个文件:
可以看到我们成功触发了open和read接口:
自动生成设备
分四步走:
查看结果: