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