1

我正在尝试在我的自定义 Linux 内核模块中打印以下变量以进行调试:

__le16 length; // The length of the data
u8 data[128];

data变量的最大长度为 128 字节,但我们可能不会全部使用它。长度变量决定了我们使用了多少data变量。我想以data十六进制格式打印变量的内容。我正在使用 for 循环这样做,但是,当我使用dmesg. 我想这是因为printk工作原理。我仍然可以在同一行打印内容,但使用%s. 但是,我想以十六进制格式打印同一行中的所有字节。我怎样才能做到这一点?

u8 i = 0;
for (i = 0 ; i < length ; i++)
{
    printk("0x%02x ", data[i]);
}
printk("\n"); 
4

0 回答 0