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

时间:2014-04-18 03:39:16

标签: 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 * 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();
}

1 个答案:

答案 0 :(得分:1)

我不能说/ sys,但对于/ proc来说,做这些事情相当简单。 This site shows how to create a /proc entry这可能是猫。