Linux kernel 通过sysfs将信息从内核空间导出到用户空间
我编写了一个内核模块内存泄漏检测器,它通过向列表中添加有关可能内存泄漏的信息来工作。我希望能够在列表中循环,并将信息写入用户的文件中,使用下面的代码在用户空间中很容易做到,但是我如何使用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 *
/*
* 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来说,做这样的事情相当简单。这可能是猫的