uname函数返回与主机和操作系统有关的信息
#include <sys/utsname.h>
int uname(struct utsname *buf);//成功返回非负值,失败返回-1
通过该函数的参数向其传递一个utsname结构的地址,然后该函数填写此结构。
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 主机的硬件架构名称 */
};
example:
#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;
}
运行情况:
下面的函数用来显示TCP/IP协议上主机的名字
#include <unistd.h>
int gethostname(char* name,int namelen);
//成功返回0,失败返回-1
namelen参数指定name缓冲区长度,如若提供足够空间,则通过name返回字符串以null字节结尾
以上内容来源于网络,仅作本人学习笔记使用,关于本书请参考APUE