1. #include <sys/utsname.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. int main(int argc,char **argv)
  5. {
  6. struct utsname buf;
  7. if(uname(&buf))
  8. {
  9. perror("uname");
  10. exit(1);
  11. }
  12. printf("-------------------------------\n");
  13. printf("sysname:%s\n",buf.sysname);
  14. printf("nodename:%s\n",buf.nodename);
  15. printf("release:%s\n",buf.release);
  16. printf("version:%s\n",buf.version);
  17. printf("machine:%s\n",buf.machine);
  18. printf("-------------------------------\n");
  19. return 0;
  20. }

注: struct utsname 是一个系统定义好的结构体,结构体定义如下:

  1. struct utsname{
  2. char sysname[]; /* 操作系统名称 (e.g., "Linux") */
  3. char nodename[]; /* 当前设备在网络上的名称 (e.g,"localhost.localdomain")*/
  4. char release[]; /* 系统发布级别(e.g., "2.6.28") */
  5. char version[]; /* 系统发布版本 */
  6. char machine[]; /* 当前设备硬件体系(e.g.,"i686") */
  7. #ifdef _GNU_SOURCE
  8. char domainname[]; /* NIS或者YP域名 */
  9. #endif
  10. };

参考文献