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)