gethostname, sethostname - get/set host name


SYNOPSIS

       #include <unistd.h>

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


DESCRIPTION

       These  functions  are used to access or to change the host
       name of the current processor.


RETURN VALUE

       On success, zero is returned.  On error, -1  is  returned,
       and errno is set appropriately.


ERRORS

       EINVAL len  is negative or, for sethostname, len is larger
              than the maximum allowed size, or, for  gethostname
              on Linux/i386, len is smaller than the actual size.
              (In this last case glibc 2.1 uses ENAMETOOLONG.)

       EPERM  For sethostname, the caller was not the  superuser.

       EFAULT name is an invalid address.


CONFORMING TO

       SVr4,  4.4BSD   (this  function first appeared in 4.2BSD).
       POSIX.1 does  not  define  these  functions,  but  ISO/IEC
       9945-1:1990 mentions them in B.4.4.1.


BUGS

       According  to the SUSv2, gethostname must return len bytes
       (a truncated hostname, NUL-terminated  or  not)  when  the
       hostname  is longer.  Linux/Alpha (which has a system call
       gethostname) complies with this requirement, but libc  and
       glibc on Linux/i386 only return an error in this case.


NOTES

       The  definition  of success varies. SUSv2 defines gethost­
       name() as `return possibly truncated hostname', and having
       a  small  len does not cause an error return. Of course it
       must be possible to be certain that one has  obtained  the
       full hostname, and to this end SUSv2 guarantees that `Host
       names are limited to 255 bytes'.


SEE ALSO

       getdomainname(2), setdomainname(2), uname(2)


Man(1) output converted with man2html