Linux class 接口的使用
来源:互联网 发布:win7网络打印机找不到 编辑:程序博客网 时间:2024/05/29 16:18
//Linux class 类接口必要的头文件:#include <linux/device.h>static ssize_t dvb_widgets_antpower_show(struct class *class, struct class_attribute *attr, char *buf){ int ret; ret = sprintf(buf, "%s\n", "poweron"); return ret; //show函数需要返回拷贝到用户空间的size,如果为0则用户空间读不到拷贝到buf的内容。}static ssize_t dvb_widgets_antpower_store(struct class *class, struct class_attribute * attr, const char * buf, size_t size){ return size; //store函数不可返回0或负数,否则会一直调用stroe函数 }static ssize_t dvb_widgets_loops_show(struct class *class, struct class_attribute *attr, char *buf){ int ret; ret = sprintf(buf, "%s\n", "loops"); return ret; //show函数需要返回拷贝到用户空间的size,如果为0则用户空间读不到拷贝到buf的内容。}static ssize_t dvb_widgets_loops_store(struct class *class, struct class_attribute *attr, const char *buf, size_t size){ return size; //store函数不可返回0或负数,否则会一直调用stroe函数 }//定义并赋值class_attributestatic struct class_attribute dvb_widgets_class_attrs[] = { __ATTR(antpower, S_IRUGO | S_IWUSR,dvb_widgets_antpower_show, dvb_widgets_antpower_store ), __ATTR(loops, S_IRUGO | S_IWUSR, dvb_widgets_loops_show, dvb_widgets_loops_store), __ATTR_NULL //一定要以__ATTR_NULL结束class_attribute的赋值,否则在class_register时会报null pointer;};//定义classstatic struct class dvb_widgets_class = { .name = "dvb-widget", //class注册成功后会生成接点“/sys/class/dvb-widget” .class_attrs= dvb_widgets_class_attrs, //class的属性组};//一般在设置驱动的probe函数里注册classif(class_register(&dvb_widgets_class )<0) { //注册class. pr_error("register class error\n");}//一般在remove函数里注销classclass_unregister(&dvb_widgets_class ); //注销class//本例class注册成功会生成如下两个节点// /sys/class/dvb-widget/antpower// /sys/class/dvb-widget/loops// echo xx > /sys/class/dvb-widget/antpower 会调用dvb_widgets_antpower_store// cat /sys/class/dvb-widget/antpower 会调用dvb_widgets_antpower_show
阅读全文
0 0
- Linux class 接口的使用
- Linux class 类接口的使用
- 转 class“std::vector<_Ty>”需要有 dll 接口由 class“Test”的客户端使用错误
- warning C4251: class ... 需要有 dll 接口由 class“XClock” 的客户端使用
- 告警“需要有 dll 接口由 class“xxx”的客户端使用”的解释
- linux 的class结构
- warning C4251: “std::vector<_Ty>”需要有 dll 接口由 class“Test”的客户端使用错误
- Visual Studio 警告:需要有 dll 接口由 class“XXX的客户端使用
- linux fgets() 接口使用
- Stream Class和 Minidriver之间的接口
- 接口文件里的 @class 和 @import
- Kotlin 的 接口.class实现书写方式
- class关键字的使用
- Class.forName的使用
- 使用未定义的 class
- @class指令的使用
- ng-class的使用
- 关于@class的使用
- html5增加与移除元素总结
- WebView 加载html图片如何适应屏幕大小
- dpdk对虚拟化支持研究
- 解决IQKeyboardManager在Xcode 9、iOS11上不显示Done完成按钮
- Android Studio系列(二)使用AS开发/调试整个android系统源代码(不定时更新)
- Linux class 接口的使用
- 几张图帮你理解 docker 基础原理及快速入门
- (一)Bootstrap——基本下拉菜单制作步骤
- ionic3基础之本地缓存
- Vue 组件间通信实例
- sql将两个表中主键相同的行的内容合并到一行
- maven window打包(有图)
- SSH入门项目-3-第一个小功能
- JAVA-赵江波/9.23/9.24