博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Printk在终端显示
阅读量:4052 次
发布时间:2019-05-25

本文共 792 字,大约阅读时间需要 2 分钟。

printk()函数为内核空间里边的信息打印函数,就像c编程时用的printf()函数一样,专供内核中的信息展示用,他没有调用printf()的原因是在编译内核时还没有c的库函数可以供调用。

linux中,可以像使用printf()一样使用printk(),也可以加上优先级使用,比如如下:

                printk(KERN_ALERT "LCD light exit.\n")

printk()函数有八个优先级定义,如下:

           #define    KERN_EMERG     "<0>"    

#define    KERN_ALERT      "<1>"    

#define    KERN_CRIT  "<2>"    

#define    KERN_ERR   "<3>"    

#define    KERN_WARNING "<4>"    

#define    KERN_NOTICE    "<5>"    

#define    KERN_INFO  "<6>"    

#define    KERN_DEBUG     "<7>"    

   printk()优先级低于int console_loglevel,信息将直接打印在你的终端上(x 环境下好像不行)。如果同时 syslogdklogd都在运行,信息也同时添加在文件 /var/log/messages,而不管是否显示在控制台上与否。我们使用像 KERN_ALERT这样的高优先级,来确保printk()将信息输出到 控制台而不是只是添加到日志文件中。 当你编写真正的实用的模块时,你应该针对可能遇到的情况使用合适的优先级。

/var/log/messages里的信息可以使用 cat  /var/log/messages 进行查看。

控制台的日志级别可以使用    cat /peoc/sys/kernel/printk 查看。

控制台的日志级别可以用    echo 3 > /peoc/sys/kernel/printk  改变(3为要写入的值,可改变)。

转载地址:http://zosci.baihongyu.com/

你可能感兴趣的文章
Java8 HashMap集合解析
查看>>
欢迎使用CSDN-markdown编辑器
查看>>
Android计算器实现源码分析
查看>>
Android系统构架
查看>>
Android 跨应用程序访问窗口知识点总结
查看>>
各种排序算法的分析及java实现
查看>>
SSH框架总结(框架分析+环境搭建+实例源码下载)
查看>>
自定义 select 下拉框 多选插件
查看>>
js获取url链接携带的参数值
查看>>
gdb 调试core dump
查看>>
gdb debug tips
查看>>
arm linux 生成火焰图
查看>>
linux和windows内存布局验证
查看>>
linux insmod error -1 required key invalid
查看>>
linux kconfig配置
查看>>
linux不同模块completion通信
查看>>
linux printf获得时间戳
查看>>
C语言位扩展
查看>>
linux irqdebug
查看>>
git 常用命令
查看>>