全部博文(404)
分类: LINUX
2009-04-17 15:11:48
【uname系统调用】 功能描述: 获取当前内核名称和其它信息。 用法: #include 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 /* Name of the domain of this node on the network. */ # 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 #include #include int main() { struct utsname testbuff; int fb=0; fb=uname(&testbuff); if(fb<0) { perror("uname"); return 0; }else { printf(" sysname:%s\n nodename:%s\n release:%s\n version:%s\n machine:%s\n \n ",\ testbuff.sysname,\ testbuff.nodename,\ testbuff.release,\ testbuff.version,\ testbuff.machine); #if _UTSNAME_DOMAIN_LENGTH - 0 # ifdef __USE_GNU printf(" domainame:%s\n ",testbuff.domainname); //char domainname[_UTSNAME_DOMAIN_LENGTH]; //当前域名 # else printf(" __domainame:%s\n ",testbuff.__domainname); //char __domainname[_UTSNAME_DOMAIN_LENGTH]; # endif #endif } return 0; } |