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’.