Главная » 2017 » Ноябрь » 24 » man 2 sethostname
05:08
man 2 sethostname

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


gethostname, sethostname - получить/установить имя узла



ОБЗОР


#include <unistd.h>

int gethostname(char *name, size_t len);
int sethostname(const char *name, size_t len);

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

gethostname():
Начиная с glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200112L
sethostname():
начиная с glibc 2.21:
_DEFAULT_SOURCE
в glibc 2.19 и 2.20:
_DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
до glibc 2.19, включительно:
_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)



ОПИСАНИЕ


Эти системные вызовы используются для доступа или изменения имени узла текущего процессора.

Вызов sethostname() устанавливает имя узла равны значению, указанному в массиве символов
name. Аргумент len определяет количество байт в name. (Таким образом, name не требует
наличия завершающего байта с null.)

gethostname() возвращает имя узла с null на конце в массиве символов name длиной len байт.
Если имя узла, оканчивающееся null, не помещается, то имя обрезается и ошибки не происходит
(но смотрите ЗАМЕЧАНИЯ далее). В POSIX.1 сказано, что если обрезание произошло, то неясно,
будет ли буфер содержать завершающий байт с null.



ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ


При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno
устанавливается в соответствующее значение.



ОШИБКИ


EFAULT name является неправильным адресом.

EINVAL len имеет отрицательное значение или для sethostname() длина len больше, чем
максимально допустимое значение.

ENAMETOOLONG
(gethostname() из glibc) len меньше чем реальный размер. (До версии 2.1, glibc
возвращала в этом случае EINVAL.)

EPERM Для работы с sethostname() у вызывающего нет мандата CAP_SYS_ADMIN в пользовательском
пространстве имён, связанном с его пространством имён UTS (смотрите namespaces(7)).



СООТВЕТСТВИЕ СТАНДАРТАМ


SVr4, 4.4BSD (данная функция впервые появилась в 4.2BSD). В POSIX.1-2001 и POSIX.1-2008
определена gethostname(), но нет sethostname().



ЗАМЕЧАНИЯ


SUSv2 гарантирует, что «Длина имени узла ограничена 255-ю байтами». POSIX.1 гарантирует, что
возвращает -1, устанавливая значение errno равным ENAMETOOLONG; в этом случае в
возвращаемое значение name завершающий null не добавляется.

Версии glibc до 2.2 обрабатывали случай превышения длины nodename по другому: ничего не
копировалось в name и функция возвращала -1, устанавливая errno равным ENAMETOOLONG.



СМОТРИТЕ ТАКЖЕ


hostname(1), getdomainname(2), setdomainname(2), uname(2)



Просмотров: 435 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar