C言語システムコール-gethostname
gethostnameシステムコール
概要
gethostnameはホスト名を取得します。
引数として渡した配列で取得したホスト名は「¥0」で終端されます。
OSによっては、gethostnameはCライブラリとして実装されています。
Linuxではunameを内部的に呼び出すCライブラリ関数として実装されています。
なお、ホスト名を設定する場合にはsethostnameシステムコールを利用します。
サンプルプログラム
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
/*!
* @brief ホスト名を出力する
* @return 0:success/-1:failure
*/
static int
show_hostname(void)
{
char hname[BUFSIZ];
int rc = 0;
rc = gethostname(hname, sizeof(hname));
if(rc < 0){
printf("Error: gethostname() %s\n", strerror(errno));
return(-1);
}
fprintf(stdout, "hostname = %s\n", hname);
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_hostname();
if(rc != 0) exit(EXIT_FAILURE);
exit(EXIT_SUCCESS);
}