注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

旷世的忧伤

不与夏虫语寒,不与曲人语道,因为生命缺乏言说的条件......

 
 
 

日志

 
 

Uname函数详解  

2014-11-28 17:25:57|  分类: Unix环境编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
功能描述: 获取当前内核名称和其它信息。

原型:

#include <sys/utsname.h>
extern int uname (struct utsname *__name) __THROW;


参数说明:
__name:指向存放系统信息的缓冲区,原型如下:

struct utsname
  {   
    char sysname[_UTSNAME_SYSNAME_LENGTH];   //当前操作系统名
    char nodename[_UTSNAME_NODENAME_LENGTH]; //网络上的名称
    char release[_UTSNAME_RELEASE_LENGTH];   //当前发布级别
    char version[_UTSNAME_VERSION_LENGTH];   //当前发布版本
    char machine[_UTSNAME_MACHINE_LENGTH];   //当前硬件体系类型

#if _UTSNAME_DOMAIN_LENGTH - 0
    
# ifdef __USE_GNU
    char domainname[_UTSNAME_DOMAIN_LENGTH];   //当前域名
# else
    char __domainname[_UTSNAME_DOMAIN_LENGTH];
# endif
#endif
  };


返回值:
成功执行时,返回0。失败返回-1,errno被设为EFAULT,表示buf无效。
关于uname的具体用法可以使用“man uname”来查看。

示例:
#include <sys/utsname.h>
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
struct utsname ub;
int fb=0;

fb=uname(&ub);
if(fb<0)
{
perror("filed uname");
return 0;
}
else
{
printf(" sysname:%s\n nodename:%s\n release:%s\n version:%s\n machine:%s\n \n ",\
ub.sysname,\
ub.nodename,\
ub.release,\
ub.version,\
ub.machine);
#if _UTSNAME_DOMAIN_LENGTH - 0
# ifdef __USE_GNU
printf(" domainame:%s\n ",ub.domainname);
//char domainname[_UTSNAME_DOMAIN_LENGTH]; //当前域名
# else
printf(" __domainame:%s\n ",ub.__domainname);
//char __domainname[_UTSNAME_DOMAIN_LENGTH];
# endif
#endif
}

return 0;
}


  评论这张
 
阅读(2)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018