0
我正在編寫一個內核模塊,並希望打印到運行insmod
指令進行調試的終端。我發現了幾個地方,這樣做就像這樣
((my_tty->driver)->ops->write) (my_tty, str, len)
,它工作正常,只要我有一個常量字符串。但是當我想打印一個指針和一個整數(「%p%d」)時,我該怎麼做同樣的事情?如何將變量的內容打印到tty?
代碼示例:
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/slabh>
#include <linux/sched.h>
#include <linux/tty.h>
int init_module(void)
{
int *n;
struct tty_struct *tty;
tty = current->signal->tty;
(tty->driver)->ops->write (tty, "Hello\n", 6); // What I know how to print to the terminal
printk(KERNINFO "%p %d", n1, *n1); // What I want to print to the terminal (not to the kernel ring buffer)
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "Goodbye world.\n");
}