我想知道是否有一个gcc宏可以告诉我Linux内核版本,以便我可以适当地设置变量类型。如果没有,我将如何定义自己的宏呢?
在 LINUX / version.h中 的文件有一个名为宏KERNEL_VERSION可以让你检查要对当前的Linux版本头(版本LINUX_VERSION_CODE)安装。例如,检查当前的Linux标头是否适用于内核 v2.6.16 或更早版本:
KERNEL_VERSION
LINUX_VERSION_CODE
#include <linux/version.h> #if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) ... #else ... #endif
在运行时获取版本信息的更好方法是使用include / linux / utsname.h中的utsname函数。
utsname
char *my_kernel_version = utsname()->release;
从本质/proc/version上讲,这就是获取当前内核版本的方法。
/proc/version