从代码中获取/ proc / interrupts等中断计数器?

时间:2010-09-13 12:53:39

标签: c++ c linux interrupt

我可能会错过显而易见的,但是如何在不从C / C ++程序中手动解析/proc/interrupts的情况下检索特定中断的中断计数器?

提前致谢!

最好的问候,马丁

3 个答案:

答案 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)。所以你可能必须非常小心解析(或者将检查列入白名单,只在解析你已经能够测试它的架构上的文件)。