#include <sys/utsname.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char **argv)
{
struct utsname buf;
if(uname(&buf))
{
perror("uname");
exit(1);
}
printf("-------------------------------\n");
printf("sysname:%s\n",buf.sysname);
printf("nodename:%s\n",buf.nodename);
printf("release:%s\n",buf.release);
printf("version:%s\n",buf.version);
printf("machine:%s\n",buf.machine);
printf("-------------------------------\n");
return 0;
}
注: struct utsname
是一个系统定义好的结构体,结构体定义如下:
struct utsname{
char sysname[]; /* 操作系统名称 (e.g., "Linux") */
char nodename[]; /* 当前设备在网络上的名称 (e.g,"localhost.localdomain")*/
char release[]; /* 系统发布级别(e.g., "2.6.28") */
char version[]; /* 系统发布版本 */
char machine[]; /* 当前设备硬件体系(e.g.,"i686") */
#ifdef _GNU_SOURCE
char domainname[]; /* NIS或者YP域名 */
#endif
};