【uname系統(tǒng)調(diào)用】 功能描述: 獲取當(dāng)前內(nèi)核名稱和其它信息。 用法: #include <sys/utsname.h> extern int uname (struct utsname *__name) __THROW; 參數(shù): __name:指向存放系統(tǒng)信息的緩沖區(qū),,原型如下 struct utsname { char sysname[_UTSNAME_SYSNAME_LENGTH];//當(dāng)前操作系統(tǒng)名 char nodename[_UTSNAME_NODENAME_LENGTH];//網(wǎng)絡(luò)上的名稱 char release[_UTSNAME_RELEASE_LENGTH];//當(dāng)前發(fā)布級別 char version[_UTSNAME_VERSION_LENGTH];//當(dāng)前發(fā)布版本 char machine[_UTSNAME_MACHINE_LENGTH];//當(dāng)前硬件體系類型 #if _UTSNAME_DOMAIN_LENGTH - 0 /* Name of the domain of this node on the network. */ # ifdef __USE_GNU char domainname[_UTSNAME_DOMAIN_LENGTH]; //當(dāng)前域名 # else char __domainname[_UTSNAME_DOMAIN_LENGTH]; # endif #endif }; 返回說明: 成功執(zhí)行時,,返回0。失敗返回-1,,errno被設(shè)為EFAULT,表示buf無效,。 關(guān)于uname的具體用法可以使用“man uname”來查看,。 ========================================================================== 使用實(shí)例: #include <sys/utsname.h> #include <stdio.h> #include <stdlib.h> int main() { struct utsname testbuff; int fb = 0; fb = uname(&testbuff); if(0 > fb) { perror("uname"); return 0; } else { printf("sysname:%s\n nodename:%s release:%s\n version:%s machine:%s\n\n ", testbuff.sysname, testbuff.nodename, testbuff.release, testbuff.version, testbuff.machine); #if _UTSNAME_DOMAIN_LENGTH - 0 #ifdef __USE_GNU printf("domainname:%s\n", testbuff.domainname); #else printf("__domainname:%s\n", testbuff.__domainname); #endif #endif } return 0; } |
|
來自: 海漩渦 > 《knowledge》