"> SETHOSTENT(3)

SETHOSTENT(3)

НАЗВАНИЕ
gethostent, gethostbyaddr, gethostbyname, sethostent, endhostent - получить сведения о главной сетевой машине

СИНТАКСИС

	#include <netdb.h>
	 
	struct hostent *gethostent()
	 
	struct hostent *gethostbyname(name)
	char *name;
	 
	struct hostent *gethostbyaddr(addr,len,type)
	char *addr; int len,type;
	 
	sethostent(stayopen)
	int stayopen
	 
	endhostent()

ОПИСАНИЕ
Функции gethostent, gethostbyname и gethostbyaddr возвращают указатель на объект, имеющий следующую структуру и описывающий строку в главной сетевой БД /etc/hosts:

	struct hostent {
	   char   *h_name;     /* официальное host-имя */
	   char   **h_aliases; /* список псевдонимов */
	   int    h_addrtype;  /* тип адреса */
	   int    h_length;    /* длина адреса */
	   char   *h_addr;     /* адрес */
	};

ЭЛЕМЕНТЫ СТРУКТУРЫ
h_name Официальное имя главной машины.
h_aliases Массив альтернативных имен главной машины, оканчивающийся нулем.
h_addrtype Тип возвращаемого адреса; в настоящее время всегда AF_INET.
h_length Длина адреса в байтах.
h_addr Указатель на сетевой адрес для главной машины.

Функция gethostent считывает следующую строку файла, в случае необходимости открывая этот файл.

Функция sethostent открывает и переходит к началу файла. Если флаг stayopen имеет ненулевое значение, главная БД не будет закрываться после каждого вызова функции gethostent.

Функция endhostent закрывает файл.

Функции gethostbyname и gethostbyaddr последовательно просматривают файл с самого начала в поисках имени или адреса главной машины.

ФАЙЛЫ

	/etc/hosts

ДИАГНОСТИКА
По достижении конца файла или в случае появления ошибки возвращается нулевой указатель.

ЗАМЕЧАНИЯ
Вся информация сохраняется в статической области, поэтому в целях сохранения ее необходимо скопировать. Адрес может иметь только формат Internet.