gpt4 book ai didi

android - 如何在 sysfs 中的文件夹中创建文件夹

转载 作者:搜寻专家 更新时间:2023-11-01 08:02:10 24 4
gpt4 key购买 nike

我正在尝试为我在 android 中的实现创建一个 sysfs,并坚持在 CLASS 中创建我自己的文件夹。

我的要求:

/sys/class/example_class/my_sysfs_directory/file_one.

代码:

    #include<linux/module.h>
#include<linux/kernel.h>
#include<linux/device.h>
#include <linux/err.h>

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Manoj");

static ssize_t sysfs_demo_show(struct class *class,
struct class_attribute *attr, char *buf)
{
pr_info("%s [%d]: \n", __func__, __LINE__);
return sprintf(buf, "%s \n", __func__);
}

static ssize_t sysfs_demo_store(struct class *class,
struct class_attribute *attr, const char *buf, size_t size)
{
pr_info("%s [%d]: \n", __func__, __LINE__);
return size;
}

static CLASS_ATTR(file_one, 0777, sysfs_demo_show, sysfs_demo_store);
int sysfs_my_dev_uevent(struct device *dev, struct kobj_uevent_env *env)
{
pr_info("%s [%d]: \n", __func__, __LINE__);
return 0;
}

struct class *example_class;

int sysfs_demo_init(void)
{
int ret;
pr_info("%s [%d]: \n", __func__, __LINE__);
example_class = class_create(THIS_MODULE, "demo");
if (IS_ERR(example_class)) {
pr_err("Failed to create sys_class\n");
return -1;
}
example_class->dev_uevent = sysfs_my_dev_uevent;
ret = class_create_file(example_class, &class_attr_file_one);
if (ret) {
pr_err("Failed to create class file @ parent class dirs\n");
return -1;
}
return 0;
}

void sysfs_demo_exit(void)
{
pr_info("%s [%d]: \n", __func__, __LINE__);
class_remove_file(example_class, &class_attr_file_one);
class_destroy(example_class);
}


module_init(sysfs_demo_init);
module_exit(sysfs_demo_exit);

我已经把我的代码贴在这里了,请在这方面帮助我。

最佳答案

不推荐“手动”创建 sysfs 目录/文件。

每个 sysfs 属性都应该关联到一个设备。如果您的目标是设备驱动程序,您迟早会使用结构device。这里是related answer

关于android - 如何在 sysfs 中的文件夹中创建文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19653851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com