2012-03-20 4 views
0

Как я могу получить и показать имя и PID для текущего процесса в модуле ядра Linux? Мой код:показать имя процесса и pid в Debian

#include <linux/module.h> 
#include <linux/init.h> 
#include <linux/kernel.h> 

MODULE_DESCRIPTION("Afiseaza PID si numele executabilului"); 
MODULE_AUTHOR("ololo"); 
MODULE_LICENSE("FREE"); 


static int print_on_init(void) 
{ 
    struct task *cur_task; 
    cur_task = get_current(); 
    printk(KERN_DEBUG, "Hello!\n"); 
    return 0; 
} 

static int print_on_exit(void) 
{ 
    printk(KERN_DEBUG, "Goodbye!\n"); 
} 

module_init(my_hello_init); 
module_exit(hello_exit); 
+0

Можете ли вы включить реальный код вместо снимка экрана? Кроме того, что вы подразумеваете под именем процесса? Командная строка? –

+0

Похож на вопрос ядра Linux для меня, а не только для конкретного Debian. Кстати, почему код как образ? –

ответ

0

Вы можете использовать getpid() вызов

+2

Вы не можете использовать 'getpid()', поскольку это функция из стандартной библиотеки, и поэтому она недоступна в модуле ядра. –

+0

не знал об этом, спасибо – smhx

2

Я не специалист в области программирования ядра, но вы можете взглянуть на то, как текущий PID извлекается, например, в code for exec(). Кажется, есть структура, называемая current, через которую вы можете извлечь нужные данные. Когда вы нажимаете на имя переменной в связанном исходном браузере ядра, вы получаете список других мест, в которых используется эта переменная.

Смежные вопросы