Scroll to navigation

GETHOSTNAME(2) Руководство программиста Linux GETHOSTNAME(2)

ИМЯ

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 будет установлено соответствующим образом.

ОШИБКИ

len имеет отрицательное значение или для sethostname, длина len больше, чем максимально допустимое значение, или для gethostname на Linux/i386, длина len меньше, чем фактический размер. (В это случае glibc 2.1 использует ENAMETOOLONG.)
Вызвавший sethostname, не является суперпользователем.
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@perm.ru> 2003

2001-12-15 Linux 2.5.0