⑴ 内核启动printk的信息每行开头的方括号中是时间吗为什么会打印出时间在用户态怎么做到
打印出的是系统启动到打印时刻的系统的tick值,printk实现的时候内部附加上的。
硬件给内核提供一个系统定时器用以计算和管理时间,内核通过编程预设系统定时器的频率,即节拍率(tick rate),每一个周期称作一个tick(节拍)。linux内核从2.5版内核开始把频率从100调高到1000(当然带来了很多优点,也有一些缺点).
jiffies是内核中的一个全局变量,用来记录自系统启动一来产生的节拍数。譬如,如果计算系统运行了多长时间,可以用 jiffies/tick rate 来计算。jiffies定义在文件<linux/jiffies.h>中:
extern unsigned long volatile jiffies;
用户态打印的话只需引用相关头文件然后
printf("[%d]",jiffies)
即可
⑵ 怎样屏蔽linux内核printk( ) 打印信息
在grub中配置一下log级别,默认好像是6来着,你配置到0或者1试试看。
干嘛要这样?
⑶ Linux内核中prink函数和C中常用的printf函数的区别是什么
printk() 和 printf() 几乎没有什么两样, 唯一的差别是 printk() 会把输出的结果,送到内核的环缓冲区 (ring buffer)里面。这个缓冲区是系统所有信息集中的地方,就像开机时所看到的信息,都可以在这个环缓冲区找到。 任何时候, 我们都可以用 dmseg 命令查看环缓冲区的内容, 或是直接检验 /proc/kmsg 这个文件。