心请教: 如何通过函数调用(不是通过命令行)获得Linux内核版本信息!!!
1. uname可以显示内核版本信息
2. strace可以跟踪程序的系统调用
3. strace uname -a 看一下读了哪些文件、用了哪些系统调用
latelee@latelee:~$ cat /proc/version
Linux version 2.6.35-22-generic (buildd@rothera) (gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu4) ) #33-Ubuntu SMP Sun Sep 19 20:34:50 UTC 2010
读取文件即可。
缺点:版本信息较多。运动会加油稿
include <stdio.h> #include <sys/utsname.h> void prt_knl_ver(void) { struct utsname u_name; uname(&u_name); printf("System: %s\n" "Release: %s\n" "Version: %s\n" "Machine: %s\n", u_name.sysname, u_name.release, u_name.version, u_name.machine); } int main(void) { prt_knl_ver(); return 0; }
$ ./a.out
System: Linux
Release: 3.2.0-38-generic
Version: #61-Ubuntu SMP Tue Feb 19 12:20:02 UTC 2013
Machine: i686