ИМЯ
gethostname, sethostname − получить/установить имя машины
ОБЗОР
#include <unistd.h>
int
gethostname(char *name, size_t
len);
int sethostname(const char *name, size_t
len);
ОПИСАНИЕ
Эти функции используются для доступа к имени машины или для его изменения. Функция gethostname() возвращает имя машины (которое ранее было установлено вызовом sethostname()) в виде строки name, которая имеет длину len байт и завершается нулевым символом. Если завершающий нулевой символ не встретился в len байтах, то ошибки не будет, но имя машины будет усечено. При этом не факт, что усечённое имя будет завершаться нулевым символом.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
В случае успеха, возвращается 0. При ошибке возвращается −1 и значение errno будет установлено соответствующим образом.
ОШИБКИ
EINVAL |
len имеет отрицательное значение или для sethostname, длина len больше, чем максимально допустимое значение, или для gethostname на Linux/i386, длина len меньше, чем фактический размер. (В это случае glibc 2.1 использует ENAMETOOLONG.) | ||
EPERM |
Вызвавший sethostname, не является суперпользователем. | ||
EFAULT |
name является неправильным адресом. |
СООТВЕТСТВИЕ СТАНДАРТАМ
SVr4, 4.4BSD (данная функция впервые появилась в 4.2BSD). POSIX 1003.1-2001 определяет gethostname но не sethostname.
ОШИБКИ РЕАЛИЗАЦИИ
Для многих комбинаций ядер Linux / libc функция gethostname будет возвращать ошибку вместо усечённого имени машины.
ЗАМЕЧАНИЯ
SUSv2 гарантирует, что ’Длина имени машины ограничивается 255-ми байтами’. POSIX 1003.1-2001 гарантирует, что ’Длина имени машины (не включая завершающий нулевой символ) ограничивается HOST_NAME_MAX байтами’.
СМОТРИТЕ ТАКЖЕ
getdomainname(2), setdomainname(2), uname(2)
ПЕРЕВОД
Перевёл с английского Виктор Вислобоков <corochoone [AT] perm.ru> 2003