Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在';不管怎么说,你要移除整个kobject?_C_Linux_Linux Kernel_Driver_Sysfs - Fatal编程技术网

在';不管怎么说,你要移除整个kobject?

在';不管怎么说,你要移除整个kobject?,c,linux,linux-kernel,driver,sysfs,C,Linux,Linux Kernel,Driver,Sysfs,在Linux内核模块的代码中,我创建了一个kobject,它成为/sys/目录中的一个目录,然后在其中创建了一个sysfs文件。所以它看起来像/sys/KobjName/SysfsFile。这是kobject目录中的唯一文件,执行rmmod moduleX命令后,将删除sysfs文件和kobject 目前我的moduleX清理代码如下 static void cleanup(void) { /* Remove test file */ if (file_ok) s

在Linux内核模块的代码中,我创建了一个
kobject
,它成为/sys/目录中的一个目录,然后在其中创建了一个
sysfs
文件。所以它看起来像/sys/KobjName/SysfsFile。这是
kobject
目录中的唯一文件,执行
rmmod moduleX
命令后,将删除
sysfs
文件和
kobject

目前我的
moduleX
清理代码如下

static void cleanup(void)
{
    /* Remove test file */
    if (file_ok)
        sysfs_remove_file(kobj, &attributes.attr);

    /* Remove /sys/ddttest directory */
    if (kobj)
        kobject_put(kobj);
}
其中,
file\u ok
是一个0或1的整数,表示执行的
sysfs\u create\u文件(kobj,&attributes.attr)
函数是否正确(例如创建了文件)


我现在的问题是,在删除
kobject
之前,是否有必要删除
sysfs
文件。在用户空间中导航文件系统时,只需删除一个目录,即可删除其中的所有文件。内核空间中的
kobject
文件系统就是这种情况吗?

当调用
rmdir
时,如果目录不是空的,该实用程序将抱怨并且不删除目录。因此它可能不起作用。与其使用kobject_put()来减少使用次数,不如使用函数:
void kobject_del(struct kobject*kobj)