• 6.9 系统标识


    6.9 系统标识

    POSIX1定义了uname函数,它返回与当前主机和操作系统有关的信息。

    #include <sys/utsname.h>

    int uname(struct utsname *name);//返回:若成功为非负值,出错为-1


    通过该函数的参数向其传递一个utsname结构的地址,然后该函数填写此结构。POSIX.1只定义了该结构中最少需要的字段(它们都是字符数组),而每个数组的长度则由实现确定。某些实现在该结构中提供了另外一些字段。在历史上,系统V为每个数组分配9个字节,其中有1个字节用于字符串结束符(null字符)。

    struct utsname {

    char sysname[9]; //name of the operating system */操作系统名

    char nodename[9]; // name of this node */ 此节点名

    char release[9]; //current release of operating system */操作系统当前发行版

    char version[9]; //current version of this release */此发行版的当前版

    char machine[9]; //name of hardware type */硬件类型名

    };


    在utsname结构中的信息通常可用uname(1)命令打印。

    POSIX.1警告:nodename元素可能并不适用于在一通信网络上引用当前主机。此函数来自于系统V,在较早时期,nodename元素适用于在UUCP网络上引用主机。

    历史上,BSD派生的系统提供了gethostname函数,它只返回当前主机名。这通常就是在TCP/IP网上该当前主机的名字。

    #include <unistd.h>
    int gethostname(char *name,int namelen);//返回:若成功为0,出错为-1

    通过name返回的字符串以null符结尾(除非没有提供足够的空间)。<sys/param.h>中的常数MAXHOSTNAMELEN规定了此名字的最大长度(通常是64字节)。如果该当前主机联到TCP/IP网,则此当前主机名通常是该当前主机的完整的域名。

    hostname(1)命令可用来存取和设置当前主机名。(超级用户用一个类似的函数sethostname来设置当前主机名。)当前主机名通常在系统自举时设置,它由/etc/rc取自一个启动文件。

  • 相关阅读:
    [CF920E] Connected Components?
    [CF981E] Addition on Segments
    [BZOJ2152] 聪聪可可
    [CF1355E] Restorer Distance
    [CF1101D] GCD Counting
    [CF827C] DNA Evolution
    [HNOI2008] 明明的烦恼
    [CF712D] Memory and Scores
    [CF609E] Minimum spanning tree for each edge
    后缀自动机应用小结 I
  • 原文地址:https://www.cnblogs.com/shaoguangleo/p/2805998.html
Copyright © 2020-2023  润新知