gethostname(2) System Calls Manual gethostname(2) NOME gethostname, sethostname - obtem/define o nome da maquina BIBLIOTECA Biblioteca C Padrao (libc, -lc) SINOPSE #include int gethostname(char *nome, size_t comp); int sethostname(const char *nome, size_t comp); Requisitos de macro de teste de recursos para o glibc (consulte feature_test_macros(7)): gethostname(): _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L || /* glibc 2.19 and earlier */ _BSD_SOURCE sethostname(): Desde o glibc 2.21: _DEFAULT_SOURCE No glibc 2.19 e 2.20: _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) Ate e incluindo o glibc 2.19: _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) DESCRICAO Estas chamadas de sistema sao usadas para acessar ou alterar o nome da maquina do processador atual. Mais precisamente, elas operam no nome de maquina associado com o espaco de nomes de UTS do processo chamador. sethostname() define o nome de maquina com o valor fornecido na matriz de caracteres name. O argumento len especifica o numero de bytes em name. (Portanto, name nao requer um byte nulo final.) gethostname() retorna o nome da maquina terminado em nulo no vetor de caracteres name, que possui um comprimento de len bytes. Se o nome da maquina terminado em nulo for muito grande para caber, o nome sera truncado e nenhum erro sera retornado (mas consulte as NOTAS abaixo). O POSIX.1 diz que, se esse truncamento ocorrer, nao sera especificado se o buffer retornado inclui um byte nulo final. VALOR DE RETORNO Em caso de sucesso, zero e retornado. Em caso de erro, -1 e retornado, e errno e definido para indicar o erro. ERROS EFAULT name e um endereco invalido. EINVAL len e negativo ou, para sethostname(), len e maior que o tamanho permitido. ENAMETOOLONG (glibc gethostname()) len is smaller than the actual size. (Before glibc 2.1, glibc uses EINVAL for this case.) EPERM Para sethostname(), o chamador nao tinha a capacidade CAP_SYS_ADMIN no espaco de nomes de usuario associado ao seu espaco de nomes UTS (consulte namespaces(7)). VERSOES O SUSv2 garante que "Os nomes de maquina estao limitados a 255 bytes". O POSIX.1 garante que "Os nomes de maquina (nao incluindo o byte nulo final) sao limitados a HOST_NAME_MAX bytes". No Linux, HOST_NAME_MAX e definido com o valor 64, que tem sido o limite desde o Linux 1.0 (os kernels anteriores impuseram um limite de 8 bytes). Diferencas entre kernel/biblioteca C A biblioteca GNU C nao emprega a chamada de sistema gethostname(); em vez disso, implementa gethostname() como uma funcao de biblioteca que chama uname(2) e copia ate len bytes do campo nodename retornado em name. Depois de executar a copia, a funcao verifica se o comprimento de nodename foi maior ou igual a len e, se for, entao a funcao retorna -1 com errno definido como ENAMETOOLONG ; nesse caso, um byte nulo final nao e incluido no name retornado. PADROES gethostname() POSIX.1-2008. sethostname() None. HISTORICO SVr4, 4.4BSD (esta funcao apareceu primeiramente no 4.2BSD). POSIX.1-2001 e POSIX.1-2008 especifica gethostname(), mas nao sethostname(). Versions of glibc before glibc 2.2 handle the case where the length of the nodename was greater than or equal to len differently: nothing is copied into name and the function returns -1 with errno set to ENAMETOOLONG. VEJA TAMBEM hostname(1), getdomainname(2), setdomainname(2), uname(2), uts_namespaces(7) TRADUCAO A traducao para portugues brasileiro desta pagina man foi criada por Andre Luiz Fassone , Ricardo C.O.Freitas e Rafael Fontenelle . Esta traducao e uma documentacao livre; leia a Licenca Publica Geral GNU Versao 3 ou posterior para as condicoes de direitos autorais. Nenhuma responsabilidade e aceita. Se voce encontrar algum erro na traducao desta pagina de manual, envie um e-mail para a lista de discussao de tradutores . Linux man-pages 6.06 31 outubro 2023 gethostname(2)