Man page - sethostname(2)

Packages contains this manual

Available languages:

en pt_BR pl nl ja ru ro de

Manual

gethostname

NOME
BIBLIOTECA
SINOPSE
DESCRIÇÃO
VALOR DE RETORNO
ERROS
VERSÕES
Diferenças entre kernel/biblioteca C
PADRÕES
HISTÓRICO
VEJA TAMBÉM
TRADUÇÃO

NOME

gethostname, sethostname - obtém/define o nome da máquina

BIBLIOTECA

Biblioteca C Padrão ( libc , -lc )

SINOPSE

#include <unistd.h>

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)
Até e incluindo o glibc 2.19:
_BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

DESCRIÇÃO

Estas chamadas de sistema são usadas para acessar ou alterar o nome da máquina do processador atual. Mais precisamente, elas operam no nome de máquina associado com o espaço de nomes de UTS do processo chamador.

sethostname () define o nome de máquina com o valor fornecido na matriz de caracteres name . O argumento len especifica o número de bytes em name . (Portanto, name não requer um byte nulo final.)

gethostname () retorna o nome da máquina terminado em nulo no vetor de caracteres name , que possui um comprimento de len bytes. Se o nome da máquina terminado em nulo for muito grande para caber, o nome será truncado e nenhum erro será retornado (mas consulte as NOTAS abaixo). O POSIX.1 diz que, se esse truncamento ocorrer, não será especificado se o buffer retornado inclui um byte nulo final.

VALOR DE RETORNO

Em caso de sucesso, zero é retornado. Em caso de erro, -1 é retornado, e errno é definido para indicar o erro.

ERROS

EFAULT

name é um endereço inválido.

EINVAL

len é negativo ou, para sethostname (), len é 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 não tinha a capacidade CAP_SYS_ADMIN no espaço de nomes de usuário associado ao seu espaço de nomes UTS (consulte namespaces (7)).

VERSÕES

O SUSv2 garante que "Os nomes de máquina estão limitados a 255 bytes". O POSIX.1 garante que "Os nomes de máquina (não incluindo o byte nulo final) são limitados a HOST_NAME_MAX bytes". No Linux, HOST_NAME_MAX é definido com o valor 64, que tem sido o limite desde o Linux 1.0 (os kernels anteriores impuseram um limite de 8 bytes).

Diferenças entre kernel/biblioteca C

A biblioteca GNU C não emprega a chamada de sistema gethostname (); em vez disso, implementa gethostname () como uma função de biblioteca que chama uname (2) e copia até len bytes do campo nodename retornado em name . Depois de executar a cópia, a função verifica se o comprimento de nodename foi maior ou igual a len e, se for, então a função retorna -1 com errno definido como ENAMETOOLONG ; nesse caso, um byte nulo final não é incluído no name retornado.

PADRÕES

gethostname ()

POSIX.1-2008.

sethostname ()

None.

HISTÓRICO

SVr4, 4.4BSD (esta função apareceu primeiramente no 4.2BSD). POSIX.1-2001 e POSIX.1-2008 especifica gethostname (), mas não 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 TAMBÉM

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

TRADUÇÃO

A tradução para português brasileiro desta página man foi criada por André Luiz Fassone <lonely_wolf@ig.com.br>, Ricardo C.O.Freitas <english.quest@best-service.com> e Rafael Fontenelle <rafaelff@gnome.org>.

Esta tradução é uma documentação livre; leia a Licença Pública Geral GNU Versão 3 ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita.

Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para a lista de discussão de tradutores .