C言語システムコール-getdomainname

getdomainnameシステムコール

概要

getdomainnameはNIS(Network Information Service)ドメイン名を取得します。


NISとは、ネットワーク上でホスト名やパスワードなどの端末情報を共有するサービスです。

1つのコンピュータ上に保存されている管理データを複数のコンピュータに共有する場合に利用します。

NISドメイン名はNISシステムにおけるデフォルトドメイン名が使用されます。

なお、NISドメイン名はDNSドメイン名ではないので、注意する必要があります。


NISドメイン名を設定する場合にはsetdomainnameシステムコールを使用します。


サンプルプログラム


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>

/*!
 * @brief     NISドメイン名を出力する
 * @return    0:success/-1:failure
 */
static int
show_nis_domainname(void)
{
    char buff[BUFSIZ];
    int rc = 0;

    rc = getdomainname(buff, sizeof(buff));
    if(rc < 0){
        printf("Error: getdomainname() %s\n", strerror(errno));
        return(-1);
    }

    fprintf(stdout, "NIS domain name= %s\n", buff);

    return(0);
}

int
main(int argc, char *argv[])
{
    int rc = 0;

    if(argc != 1){
        fprintf(stderr, "Usage: %s\n", argv[0]);
        exit(EXIT_FAILURE);
    }

    rc = show_nis_domainname();
    if(rc != 0) exit(EXIT_FAILURE);

    exit(EXIT_SUCCESS);
}

関連ページ