POSIX.1定义了uname函数,它返回与主机和操作系统有关的信息。
#include <sys/utsname.h>
int uname(struct utsname *name);
通过该函数的参数向其传递一个utsname结构的地址,然后函数填写此结构。POSIX.1只定义了该结构中最少所需的字段(他们都是字符数组),而每个数组的长度则由实现确定。
某些实现在该结构中提供了另外一些字段。
struct utsname {
char sysname[]; // name of the operating system
char nodename; // name of this node
char release; // current release of operating system
char version; // current version of this release
char machine; // name of hardware type
};
历史上,BSD派生的系统提供gethostname函数,它只返回主机名,该名字通常就是TCP/IP网络上主机的名字。
#include <unistd.h>
int gethostname(char *name, int namelen);
如果宿主连接到TCP/IP网络中,则此主机名通常是该主机的完整域名。
hostnae(1)命令可用来获取和设置主机名。