最近遇到1个文件,用户态app需要读取/proc/meminfo获取内存相关信息,但发现该文件在3.14内核版本发生了变化,增加了1条MemAvailable。
由于原始app写的不好,导致解析文件错误。
解决该文件想到的首个办法,是通过内核版本号做区分,直接包含linux/version.h,但发现取出来的版本号与内核版本号对不上。
网上搜了了下,相对可靠的方法是读/proc/version解析处理,但感觉太土了。
想着要找出用户态获取linux内核版本号为啥不对?结果在引用的工具链头文件中找到了,原因是该工具链与内核不配套,虽然也能工作。
一般来讲,sdk提供商会提供相应内核版本的编译工具链,其工具链与内核版本是对应的。
最终用户态app重写了,更通用,逐行解析。但这个过程确认了,用户态app是可以通过LINUX_KERNEL_CODE获取当前版本号的。
阅读(866) | 评论(0) | 转发(0) |