是否有一个宏定义可以检查Linux内核版本?
- 2024-10-30 08:36:00
- admin 原创
- 53
问题描述:
我想知道是否有一个 gcc 宏可以告诉我 Linux 内核版本,以便我可以适当地设置变量类型。如果没有,我该如何定义自己的宏来执行此操作?
解决方案 1:
linux /version.h文件有一个名为的宏KERNEL_VERSION
,它允许您根据当前LINUX_VERSION_CODE
安装的 linux 头文件版本 ( ) 检查所需的版本。例如,检查当前 Linux 头文件是否适用于内核v2.6.16或更早版本:
#include <linux/version.h>
#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16)
...
#else
...
#endif
在运行时获取版本信息的更好方法是使用include/linux/utsname.hutsname
中的函数。
char *my_kernel_version = utsname()->release;
这实际上就是/proc/version
获取当前内核版本的方法。
参见
运行时从Linux内核模块获取内核版本
解决方案 2:
gcc
不知道这些信息。作为替代方案,您可以在运行时轻松确定大量内核信息。
您可以定义您的运行时类型,例如
struct unified_foo {
unsigned int kernel_version;
union {
kernel_x_foo_type k_x;
kernel_y_foo_type k_y;
kernel_z_foo_type k_z;
} u;
};
并让代码在运行时查看/proc/version
(或从内核运行时环境中获取任何您需要的信息)并进行kernel_version
适当设置。et kernel_x_foo_type
al. 是您希望根据内核版本决定的类型。调用代码需要查看kernel_version
并访问适当的u.k_x
、u.k_y
或u.k_z
数据。
解决方案 3:
在内核代码的第一个 Makefile 中,你会发现与版本相关的变量。
VERSION = 4
PATCHLEVEL = 9
SUBLEVEL = 37
相关推荐
热门文章
项目管理软件有哪些?
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件
热门标签
云禅道AD