ИМЯ¶
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@perm.ru> 2003