31.Linux-分析并制作环形缓冲区
1.环形缓冲区log_buf[]又是存在内核的哪个文件呢? 位于/proc/kmsg里,所以除了dmesg命令查看,也可以使用cat /proc/kmsg来查看 2.但是,dmesg命令和cat /proc/kmsg有所不同 2.1 dmesg命令 每次使用,都会打印出环形缓冲区的所有信息 2.2 cat /proc/kmsg 只会打印出每次新的环形缓冲区的信息 比如,第一次使用cat /proc/kmsg,会打印出内核启动的所有信息 第二次使用cat /proc/kmsg,就不会出现之前打印的信息,只打印继上次使用cat /proc/kmsg之后的新的信息,比如下图所示: 3.接下来我们便进入内核,找/proc/kmsg文件在哪生成的 搜索"kmsg",找到位于fs\proc\proc_misc.c 文件的proc_misc_init()函数中, 该函数主要用来生成登记的设备文件,具体代码如下所示: const struct file_operations proc_kmsg_operations = { . read = kmsg_read , //读函数 . poll = kmsg_poll , . open = kmsg_open , . release = kmsg_release , } ; void __init proc_misc