uname(系统调用)

原创 2015年11月21日 14:00:04

uname系统调用可用于获取系统信息。例如,内核名字,操作系统的发行级别号,类似于”2.6.28”,操作系统版本号,机器的类型,例如x86或arm。

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 主机的硬件架构名称 */       
};

#include <sys/utsname.h>
int uname(struct utsname *buf);
int olduname(struct xxxutsname *buf);
int oldolduname(struct xxxutsname *buf);

返回值:
成功,返回0,失败返回-1,错误类型在errno中。

有趣的是linux的系统调用中存在3个uname系统调用。
这些系统调用都是用于获取内核信息的。
功能上是存在重复的,但考虑到内核的向后兼容,所以并未删除重复的系统调用。

实例

#include <sys/utsname.h>
#include <stdlib.h>
#include <stdio.h>

int main(int argc,char *argv[])
{
         struct utsname buf;
         int rt=0;

         rt=uname(&buf);
         if(rt==-1)
         {
                 printf("ret == -1 \n");
                 exit(1);
         }

         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);

         return 0;
}

输出

sysname = Linux
nodename = xxx-laptop
release = 3.19.0-33-generic
version =#38~14.04.1-Ubuntu SMP Fri Nov 6 18:17:49 UTC 2015
machine = i686
版权声明:本文为博主原创文章,未经博主允许不得转载。

linux中添加系统调用

  • 2013年11月25日 15:16
  • 1.36MB
  • 下载

uname命令获取Linux系统详情

熟悉图形化操作系统的人通常都会使用鼠标来查看系统的信息,而使用图形的Linux系统中,当你在控制台模式下,无法通过“鼠标右键 >于”获取操作系统的信息。这时,在Linux下,你可以使用uname命令,...

Linux系统调用分析

  • 2013年12月24日 01:11
  • 114KB
  • 下载

深蓝系统调用代码

  • 2014年01月13日 17:44
  • 5KB
  • 下载

九个uname命令获取Linux系统详情的实例

九个uname命令获取Linux系统详情的实例 2013-11-29 11:19 译者:Luoxcat Linux中国 字号:T | T 当你在控制台模式下,无法通过“鼠标右...

arm linux系统调用分析

  • 2012年11月10日 21:45
  • 135KB
  • 下载

linux系统调用过程分析

  • 2012年09月02日 00:48
  • 110KB
  • 下载

九个uname命令获取Linux系统详情的实例

当你在控制台模式下,无法通过“鼠标右键 > 关于”获取操作系统的信息。这时,在Linux下,你可以使用uname命令,帮助你完成这些工作。 Uname是unix name的缩写。在控制台中实际使用...

linux系统调用

  • 2012年05月10日 09:28
  • 492KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:uname(系统调用)
举报原因:
原因补充:

(最多只允许输入30个字)