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 байтами'.