Chinaunix首页 | 论坛 | 博客

OS

  • 博客访问: 2216843
  • 博文数量: 691
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2660
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-05 12:49
个人简介

不浮躁

文章分类

全部博文(691)

文章存档

2019年(1)

2017年(12)

2016年(99)

2015年(207)

2014年(372)

分类: LINUX

2015-06-05 21:03:53

printk
--------------------------------------------------------------------------------

函数printk在Linux内核中定义,功能和标准C库中的函数printf类似。内核需要自己单独的打
印输出函数,这是因为它在运行时不能依赖于C库。模块能够调用printk是因为在insmod函数装
入模块后,模块就连接到了内核,因此可以访问内核的共用符号(包括函数和变量)。在printk
中可以使用如下的字符串来定义打印消息的优先级:

    KERN_EMERG    //用于紧急事件消息,他们一般是系统崩溃之前提示的消息
    KERN_ALERT    //用于需要立即采取动作的情况
    KERN_CRIT     //临界状态,通常涉及严重的硬件或软件操作失败
    KERN_ERR      //用于报告错误状态,设备驱动程序会经常使用KERN_ERR来报告来自硬件的问题。
    KERN_WARNING  //对可能出现问题的情况进行警告,但这类情况通常不会对系统造成严重问题。
    KERN_NOTICE   //有必要进行提示的正常情形,许多与安全相关的状况用这个级别进行汇报。
    KERN_INFO     //提示性信息,很多驱动程序在启动的时候以这个级别来打印他们找到的硬件信息。
    KERN_DEBUG    //用于调试信息。

这些字符串定义在kernel/include/linux/kernel.h中。

在printk中显式地指定优先级的原因在于:具有默认优先级的消息可能不会输出在控制台上。这
依赖于内核版本、klogd守护进程的版本以及具体的配置。

当然,也可以使用命令:
    # dmesg -n7
来指定输出所有级别的打印信息。

ps: printk缺乏对浮点数的支持。

阅读(5138) | 评论(0) | 转发(0) |
0

上一篇:apt-get

下一篇:linux select函数用法

给主人留下些什么吧!~~