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);
}