module_kallsyms_lookup_name怎么传递int整数
时间: 2023-12-15 21:05:06 浏览: 137
`_kallsyms_lookup_name`函数是用来查找内核符号的函数,它的参数是符号名称的字符串。如果需要传递一个整数,可以将整数转换成字符串,然后作为参数传递给该函数。例如:
```c
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/kallsyms.h>
static int my_int = 123;
static int __init my_init(void)
{
char sym_name[32];
int *sym_addr;
sprintf(sym_name, "my_int_%d", my_int);
sym_addr = (int *) kallsyms_lookup_name(sym_name);
if (sym_addr) {
printk(KERN_INFO "Symbol %s found at address %p\n", sym_name, sym_addr);
} else {
printk(KERN_INFO "Symbol %s not found\n", sym_name);
}
return 0;
}
static void __exit my_exit(void)
{
printk(KERN_INFO "Goodbye!\n");
}
module_init(my_init);
module_exit(my_exit);
```
在这个例子中,我们将整数 `my_int` 转换成字符串,并将其与字符串 `"my_int_"` 连接,得到符号名称字符串 `"my_int_123"`。然后我们将该字符串作为参数传递给 `module_kallsyms_lookup_name` 函数,以查找对应的内核符号。
阅读全文