Manpages

ИМЯ

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