Manpages

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)