linux内核函数printk 可以指定输出的优先级
格式说明符:
变量类型 , 格式说明符
int %d 或者 %x( 注: %d 是十进制, %x 是十六进制 )
unsigned int <span style="white-space:pre"> </span>%u 或者 %x
long <span style="white-space:pre"> </span>%ld<span style="white-space:pre"> </span>或者 %lx
unsigned long <span style="white-space:pre"> </span>%lu<span style="white-space:pre"> </span>或者 %lx
long long <span style="white-space:pre"> </span>%lld <span style="white-space:pre"> </span>或者 %llx
unsigned long long %llu 或者 %llx
size_t <span style="white-space:pre"> </span>%zu <span style="white-space:pre"> </span>或者 %zx
ssize_t %zd <span style="white-space:pre"> </span>或者 %zx
<pre name="code" class="cpp" style="font-size: 17px;">// <span style="font-family: 宋体, 文泉驿微米黑, sans-serif, tahoma; font-size: 16.7999992370605px;">Notes:原始指针值必须用 %p 输出。</span>
u64,即(unsigned long long),必须用 %llu 或者 %llx 输出,如:
printk("%llu", (unsigned long long)u64_var);
s64,即(long long),必须用 %lld 或者 %llx 输出,如 :
printk("%lld", (long long)s64_var);
如果 ( 变量类型 )<type> 的长度依赖一个配置选项 ( 例如: sector_t, blkcnt_t, phys_addr_t, resource_size_t) 或者 依赖相关的体系结构(例如: tcflag_t ),使用一个可能最大类型的格式说明符,并且显示转换它。如:
printk("test: sector number/total blocks: %llu/%llu\n",(unsigned long long)sector, (unsigned long long)blockcount);
实用实例
1、通过函数指针打印函数名
如此则能区分当前工作队列的处理函数,对调试一些driver很有用