GETHOSTNAME(2)

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

SINOPSE
#include <unistd.h>

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

DESCRIÇÃO
Estas funções são usadas para acessar ou alterar o nome da máquina do processador atual.

VALORES RETORNADOS
Em caso de successo, zero é retornado. Caso contrário, -1 é retornado, e errno é selecionado adequadamente.

ERROS

EINVAL
    len é negativo ou, para sethostname, len é maior que o tamanho permitido, ou, para gethostname em Linux/i386, len é menor que o tamanho atual. (Neste último caso glibc 2.1 usa ENAMETOOLONG.)

EPERM
    Para sethostname, o solicitante não é o superusuário.

EFAULT
    name é um endereço inválido.

DE ACORDO COM
SVr4, 4.4BSD (esta função apareceu primeiramente no BSD 4.2). POSIX.1 não define estas funções, mas ISO/IEC 9945-1:1990 menciona elas no B.4.4.1.

PROBLEMAS
De acordo com o SUSv2, gethostname devem retornar os bytes len (um hostname cortado, terminação nula ou não) quando o hostname é comprido. Linux/Alpha (os quais tem uma chamada de sistema gethostname) cumpre com este requerimento, mas a libc e glibc no Linux/i386 somente retornan um erro neste caso.

NOTAS
As definições de sucesso variam. SUSv2 define gethostname() como `retorno hostname possivelmente cortado', e tendo um pequeno len não causa retorno de erro. Certamente deve ser possível estar certo que um tenha obtido o hostname completo, e para isto terminar SUSv2 guarante que `Host names são limitados para 255 bytes'.

VEJA TAMBÉM
getdomainname(2), setdomainname(2), uname(2)