Linux kernel 通过sysfs将信息从内核空间导出到用户空间

Linux kernel 通过sysfs将信息从内核空间导出到用户空间,linux-kernel,kernel-module,sysfs,Linux Kernel,Kernel Module,Sysfs,我编写了一个内核模块内存泄漏检测器,它通过向列表中添加有关可能内存泄漏的信息来工作。我希望能够在列表中循环,并将信息写入用户的文件中,使用下面的代码在用户空间中很容易做到,但是我如何使用sysfs将这些信息从内核空间导出到用户,以便用户可以在文件中读取呢 /* * writes a memory leak summary to a file */ void mem_leak_summary(void) { unsigned int i; MEM_PROFILER_LIST *

我编写了一个内核模块内存泄漏检测器,它通过向列表中添加有关可能内存泄漏的信息来工作。我希望能够在列表中循环,并将信息写入用户的文件中,使用下面的代码在用户空间中很容易做到,但是我如何使用sysfs将这些信息从内核空间导出到用户,以便用户可以在文件中读取呢

/*
 * writes a memory leak summary to a file
 */
void mem_leak_summary(void)
{
    unsigned int i;
    MEM_PROFILER_LIST * mem_output;

    FILE * fp_write = fopen (SUMMARY_FILE, "wt");
    char info[1024];

    if(fp_write != NULL)
    {

        fwrite(info, (strlen(info) + 1) , 1, fp_write);
        sprintf(info, "%s\n", "-----------------------------------");   
        fwrite(info, (strlen(info) + 1) , 1, fp_write);

        for(mem_output= ptr_start; mem_output!= NULL; mem_output= mem_output->next)
        {
            sprintf(info, "address : %d\n", leak_info->mem_output.address);
            fwrite(info, (strlen(info) + 1) , 1, fp_write);
            sprintf(info, "size    : %d bytes\n", leak_info->mem_output.size);          
            fwrite(info, (strlen(info) + 1) , 1, fp_write);
            sprintf(info, "line    : %d\n", leak_info->mem_output.line);
            fwrite(info, (strlen(info) + 1) , 1, fp_write);
            sprintf(info, "%s\n", "-----------------------------------");   
            fwrite(info, (strlen(info) + 1) , 1, fp_write);
        }
    }   
    clear();
}

对于/sys我不能说,但是对于/proc来说,做这样的事情相当简单。这可能是猫的