man 2 uname
NAME
uname - get name and information about current kernel
SYNOPSIS
#include <sys/utsname.h>
int uname(struct utsname *buf);
使用方法:
struct utsname kernel_info;
int ret = uname(&kernel_info);
if (ret == 0) {
printf("release--%s\n", kernel_info.release);
printf("version--%s\n", kernel_info.version);
printf("machine--%s\n", kernel_info.machine);
char kversion[100] = { 0 };
strncpy(kversion, kernel_info.release, strlen(kernel_info.release));
} else {
printf("get kernel version fail: %s\n", strerror(errno));
}
utsname结构体的定义为
struct utsname {
char sysname[]; /* Operating system name (e.g., "Linux") */
char nodename[]; /* Name within "some implementation-defined
network" */
char release[]; /* Operating system release (e.g., "2.6.28") */
char version[]; /* Operating system version */
char machine[]; /* Hardware identifier */
#ifdef _GNU_SOURCE
char domainname[]; /* NIS or YP domain name */
#endif
};
在Andrid手机上输出信息为
release--4.4.8-perf+
version--#1 SMP PREEMPT Wed Nov 16 22:42:06 CST 2016
machine--aarch64