Экспорт информации из пространства ядра в пространство пользователя через 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 ответ

Решение

Я не могу сказать для /sys, но для /proc делать это довольно просто. На этом сайте показано, как создать запись /proc, которая может быть cat'd.

Другие вопросы по тегам