我可能会错过显而易见的,但是如何在不从C / C ++程序中手动解析/proc/interrupts
的情况下检索特定中断的中断计数器?
提前致谢!
最好的问候,马丁
答案 0 :(得分:7)
/proc/interrupts
和/proc/stat
通过调用内核函数kstat_irqs_cpu()
来获取数据。在没有打开/ proc中的文件的情况下读取它的唯一方法是,我认为,编写自己的内核驱动程序,它将调用相同的函数并通过ioctl()或其他方式返回结果。
答案 1 :(得分:6)
在Linux上,/proc
中的文本文件是规范的用户上下文界面,用于提供他们提供的大部分信息。无论好坏,解析该文本文件都是这样做的。
答案 2 :(得分:2)
我做了一些快速检查,看来这个信息没有镜像到/ sys下的任何地方,也没有任何列出的系统调用号看起来像是允许访问这些信息,所以/ proc文件可能是唯一的放置它是可见的。
您还应该知道格式是体系结构,有时是特定于内核配置;这些行由show_interrupts函数生成,该函数通常在每个体系结构子目录中的kernel / irq.c中定义(例如arch / x86 / kernel / irq.c,arch / s390 / kernel / irq.c)。所以你可能必须非常小心解析(或者将检查列入白名单,只在解析你已经能够测试它的架构上的文件)。