Linux v2.6内核编程之/sys/中的kobject
来源:互联网 发布:linux杀java进程 编辑:程序博客网 时间:2024/06/08 04:29
看到内核中Greg Kroah-Hartman的关于object的样例,再精简一下,用来演示怎样在sys文件系统中建立文件夹与文件结点,为自己的驱动添加一种用户接口。
源文件mykobject.c
/* * Sample kobject implementation * Released under the GPL version 2 only. */#include <linux/kobject.h>#include <linux/string.h>#include <linux/sysfs.h>#include <linux/module.h>#include <linux/init.h>static int foo;static ssize_t foo_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf){ return sprintf(buf, "%d\n", foo);}static ssize_t foo_store(struct kobject *kobj, struct kobj_attribute *attr, const char *buf, size_t count){ sscanf(buf, "%du", &foo); foo += 1; return count;}static struct kobj_attribute foo_attribute = __ATTR(foo, 0666, foo_show, foo_store);static struct attribute *attrs[] = { &foo_attribute.attr, NULL, /* need to NULL terminate the list of attributes */};static struct attribute_group attr_group = { .attrs = attrs,};static struct kobject *example_kobj;static int __init example_init(void){ int retval; /* * Create a simple kobject with the name of "csdn", located under /sys/ */ example_kobj = kobject_create_and_add("csdn", NULL); if (!example_kobj) return -ENOMEM; /* Create the files associated with this kobject */ retval = sysfs_create_group(example_kobj, &attr_group); if (retval) kobject_put(example_kobj); return retval;}static void __exit example_exit(void){ kobject_put(example_kobj);}module_init(example_init);module_exit(example_exit);MODULE_LICENSE("GPL");MODULE_AUTHOR("csdn.net/yilonglucky");
这样,我们在/sys/下建立了一个文件夹叫做csdn,其中包含一个文件结点叫做foo。
可以向其echo数字,cat时会显示加一后的结果。
0 0
- Linux v2.6内核编程之/sys/中的kobject
- Linux v2.6内核编程之内核模块预备知识
- Linux内核中的kobject和kset介绍
- Kobject模型之linux内核源码
- Linux v2.6内核编程之最简单的内核模块helloworld
- Linux v2.6内核编程之模块参数与多文件
- linux内核常用头文件之-----linux/kobject.h
- linux内核设计与实现之kobject和sysfs
- Linux内核修炼之kobject,ktype,kset,subsys关系
- linux内核部件之---设备驱动模型的基石kobject
- LINUX内核设计与实现之kobject与sysfs
- LINUX内核设计与实现之kobject与sysfs
- linux内核部件之---设备驱动模型的基石kobject
- Linux kernel -- 内核对象kobject
- linux内核分析之sys.c
- Linux 内核/sys 文件系统之uevent
- Linux 内核/sys 文件系统之uevent
- Linux 内核/sys 文件系统之uevent
- [转]Hadoop切分纯文本时对某一行跨两个分片这种情况的处理
- 对象序列化类库MsgPack介绍
- 微软100题(1) 二元查找树转变成排序的双向链表
- QtScript中脚本与C++代码的交互
- unity之NGUI之Anchors代码创建
- Linux v2.6内核编程之/sys/中的kobject
- 读取excel内容
- 对fmdb简单的封装
- 有效解决android sdk content loader 0%
- It Xue
- 监听系统时间的变化(一分钟变化一次)
- 超越光速:时间旅行不是梦
- 第9周项目5 方程也是类
- 判断点是否在三角形内