本文目录一览

1,为什么内核printk打印不出来printk在linuxkernelh有这个函数为

首先,你编译的东西是一个Linux内核模块吗?printk函数通常只只在Linux内核或内核模块中可用。如果不是用在Linux内核中,你应该将printk替换成printf。

为什么内核printk打印不出来printk在linuxkernelh有这个函数为

2,printf和printk的 转换说明符的 含义一样吗

一样的啊,k是内核级别的打印,但是printk可以选择打印的等级,有的可以不再console显示
格式转换说明符一样也可以,不一样也可以,取决于 你输入的数的形式 和 你希望如何转换和输出。 例如: int a; scanf("%d",&a); // 按10进制输入 printf("%d %x %o\n",a,a,a); // 按 10进制,16进制, 8 进制 输出。 输入 123 输出 123 7b 173 当然,格式应当是合理的格式。例如,double 型要用 %lf, 不能用 %d %f ...

printf和printk的 转换说明符的 含义一样吗

3,printk的中断处理程序中是不是真的那么糟吗

printk函数在中断处理函数中可以使用,但是会占用较多时间,降低效率。在调IIC驱动的时候,由于IIC读取写入处理时必须进行一定延时,在我没有使用udelay的时候,竟然用printk就使IIC中断正常运行当时在调试的时候,发现有些printk加上程序就正常,去掉就不正常,当时真是匪夷所思,但现在明白了,因此printk占用时间比较大,正好充当了IIC延时的功能。最后我把printk全部去掉,在需要延时的地方加入udelay,才使程序正常运行。
这个只要不阻塞就可以在中断里调用吧 --这个只要不阻塞就可以在中断里调用吧 --

printk的中断处理程序中是不是真的那么糟吗

4,printf和printk的区别

printf功 能: 产生格式化输出的函数用 法: int printf(const char *format,[argument]); format 参数输出的格式,定义格式为:%[flags][width][.perc][F|N|h|l]type 详情: http://baike.baidu.com/view/410546.htmprintkprintk相当于printf的孪生姐妹,她们一个运行在用户态,另一个则在内核态被人们所熟知。【原型】 int printk(const char * fmt,…); 详情: http://baike.baidu.com/view/3201386.htm

5,内核启动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) 即可

6,printk0Goodbye 中尖括号0的含义是什么

printk函数可以指定输出的优先级:  KERN_EMERG"<0>"/*紧急事件消息,系统崩溃之前提示,表示系统不可用*/  KERN_ALERT"<1>"/*报告消息,表示必须立即采取措施*/  KERN_CRIT"<2>"/*临界条件,通常涉及严重的硬件或软件操作失败*/  KERN_ERR"<3>"/*错误条件,驱动程序常用KERN_ERR来报告硬件的错误*/  KERN_WARNING"<4>"/*警告条件,对可能出现问题的情况进行警告*/  KERN_NOTICE"<5>"/*正常但又重要的条件,用于提醒。常用于与安全相关的消息*/  KERN_INFO"<6>"/*提示信息,如驱动程序启动时,打印硬件信息*/  KERN_DEBUG"<7>"/*调试级别的消息*/214的飘过~~
飘啊,看到熟人表示很激动,318宿舍飘过再看看别人怎么说的。

文章TAG:printk  为什么内核printk打印不出来printk在有这个函数为  
下一篇