是否有宏定义来检查Linux内核版本?

我想知道是否有一个gcc宏可以告诉我Linux内核的版本,这样我就可以适当地设置变量类型。如果没有,我将如何定义自己的宏来实现这一点

linux/version.h文件中有一个名为KERNEL\u version的宏,该宏允许您根据当前安装的linux头版本(linux\u version\u code)检查所需的版本。例如,要检查当前Linux标头是否适用于内核v2.6.16或更早版本,请执行以下操作:

#包括<linux/version.h>
#如果LINUX_版本_代码<=内核_版本(2,6,16)
...
#否则
...
#恩迪夫

在运行时获取版本信息的更好方法是使用include/linux/utsname.h中的utsname函数

char*my\u kernel\u version=utsname()->释放

这就是/proc/version获取当前内核验证的基本方式

另见

在运行时从linux内核模块获取内核版本

发表评论