linux中的dmesg命令输出的内容是从哪个文件里面获取的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux中的dmesg命令输出的内容是从哪个文件里面获取的?相关的知识,希望对你有一定的参考价值。

我需要用C语言,实时监控dmesg输出内容的变化,dmesg输出的内容一有变化,就将变化的内容写入到另外一个文件中保存起来。
想到的方案有while(1)不断读取dmesg的输出内容,但是这样效率过低。另外一种方案就是用select监控文件描述符,但是不知道dmesg输出的内容在哪个文件里面。

参考技术A

    dmesg 并不与具体的磁盘文件相对应,dmesg 输出的是内核ring buffer 内容

    ring buffer 对应的文件描述符也许与系统相关,对ubuntu 而言 ,dmesg 读取的文件描述符是 /dev/kmsg.

Linux常用命令——dmesg

dmesg  系统启动异常诊断

语法格式:dmesg 【option】 dmesg [选项]
注意:dmesg 命令及后面的选项里,每个元素之间都要至少要有一个空格
dmesg 用于显示内核环形缓冲区的内容。在进行系统引导时,内核会将硬件和模块初始化相关的信息写到这个缓冲区中。内核环形缓冲区中的信息对于诊断系统问题是非常有用的。
内核环形缓冲区的内容同时会保存在 /var/log 目录中,即名称为 dmesg 的文件里,可以通过如下命令进行查看:

技术分享图片
案例一:
查看内核环形缓冲区
技术分享图片

以上是关于linux中的dmesg命令输出的内容是从哪个文件里面获取的?的主要内容,如果未能解决你的问题,请参考以下文章

linux之dmesg命令

linux之dmesg命令

Linux系列Linux中dmesg命令详解

android dmesg 在哪

Linux诊断机器故障工具—dmesg命令

linux中,使用哪个命令去定时处理任务