c-在内核空间中将__be32 ip地址更改为char的方法



我正在制作一个模块,我需要将__be32格式的地址更改为char,我可以使用哪个函数,它来自哪个头文件(我知道要将char转换为__be32,我们在_aton中使用)。

对于2.6.26以上的内核(如果没有错的话),您需要使用NIPQUAD宏,如:

pritk("%d.%d.%d.%dn", NIPQUAD(your_b32_address));

对于较新的内核,添加了到printk的切换:

printk("%pI4n", your_b32_address);

看看这里:http://www.kernel.org/doc/htmldocs/kernel-hacking/common-routines.html

我想澄清一下,如果你有

__be32 ipaddr;

您必须将"ipaddr"的地址传递给printk

printk("%pI4n", &ipaddr);

最新更新