如何根据Linux内核版本使用proc_create或create_proc_entry

时间:2013-11-21 10:53:07

标签: linux-kernel

在Linux内核模块中,使用宏KERNEL_VERSION,我可以如何使用 create_proc_entryproc_create

中的任何一个

究竟在哪个内核版本中,界面发生了变化?

我在内核版本3.9中看到,在文件proc_fs.h中,两个API都存在于 不同的#ifdef。基本上我想检查内核版本并依赖于它 调用正确的API。

2 个答案:

答案 0 :(得分:1)

#include <linux/version.h>  /* For LINUX_VERSION_CODE */

#if ( LINUX_VERSION_CODE <= KERNEL_VERSION(3,9,0) )
    /* 
     * Do This
     */
#else
    /* 
     * Do This
     */
#endif

答案 1 :(得分:0)

似乎它可用 - 我刚试过Linux 3.2.0-80-generic(Ubuntu 12.04)

如果LINUX_VERSION_CODE&lt; VERSION(3,11,0)&amp;&amp;定义(CONFIG_PROC_FS)

当满足这个条件时,我使用create_proc_entry(),否则使用proc_create()。