seq_file有两种用法,一种是单个遍历方式,即show函数中只输出单个记录的信息,而seq_operations中的接口需要组合使用;另一种方式只需要一个show函数,在show函数中集中输出所有元素的信息。
例1.10 seq_file单个遍历方式实例
具体代码见\samples\1door\1-11seqfile。本例使用g_seqfile链表存储4个记录。关于链表在后续章节会介绍。
下面介绍如何通过seq_file读取g_seqfile的内容:
seq_operations操作接口的实现如下:
应用层核心代码如下:
本例运行结果如下:
例1.11 seq_file集中输出方式实例
下面以linux内核中的/fs/proc/cpuinfo.c代码为例说明seq_file集中输出方式。关于proc文件系统,下一节会介绍相关接口。首先注册/proc/cpuinfo节点:
定义proc_cpuinfo_operations:
接下来看cpuinfo_open:
每种硬件平台都会实现自已的cpuinfo_op操作结构。ARM的cpuinfo_op在/arc/arm/kernel/setup.c中:
cpuinfo_op操作接口负责输出本机处理器信息到/proc/cpuinfo文件。
上面代码的运行结果如下:(www.xing528.com)
[root@urbetter proc]#cat cpuinfo
processor :0
model name :ARMv6-compatible processor rev 6(v6l)
BogoMIPS :528.79
Features :half thumb fastmult vfp edsp java tls
CPU implementer :0x41
CPU architecture :7
CPU variant :0x0
CPU part :0xb76
CPU revision :6
Hardware :SMDK6410
Revision :0000
Serial :0000000000000000
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。