Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (Debian-5.0)
Apropos / Subsearch:
optional field

GETHOSTNAME(2)             Linux Programmer's Manual            GETHOSTNAME(2)

       gethostname, sethostname - get/set hostname

       #include <&lt;unistd.h>&gt;

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

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       gethostname(): _BSD_SOURCE || _XOPEN_SOURCE >= 500
       sethostname(): _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

       These  system calls are used to access or to change the hostname of the
       current processor.  The gethostname() system call returns a null-termi-
       nated  hostname  (set  earlier by sethostname()) in the array name that
       has a length of len bytes.  In case the null-terminated  hostname  does
       not  fit,  no  error is returned, but the hostname is truncated.  It is
       unspecified whether the truncated hostname will be null-terminated.

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

       EFAULT name is an invalid address.

       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 did  not  have  the  CAP_SYS_ADMIN

       SVr4,   4.4BSD    (these   interfaces   first   appeared   in  4.2BSD).
       POSIX.1-2001 specifies gethostname() but not sethostname().

       SUSv2  guarantees  that  "Host  names  are  limited  to   255   bytes".
       POSIX.1-2001 guarantees that "Host names (not including the terminating
       null byte) are limited to HOST_NAME_MAX bytes".

   Glibc Notes
       The GNU C library implements gethostname() as a library  function  that
       calls  uname(2)  and  copies up to len bytes from the returned nodename
       field into name.  Having performed the copy, the function  then  checks
       if  the length of the nodename was greater than or equal to len, and if
       it is, then the function returns -1 with  errno  set  to  ENAMETOOLONG.
       Versions  of  glibc  before 2.2 handle the case where the length of the
       nodename was greater than or  equal  to  len  differently:  nothing  is
       copied  into  name and the function returns -1 with errno set to ENAME-

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

       This page is part of release 3.05 of the Linux  man-pages  project.   A
       description  of  the project, and information about reporting bugs, can
       be found at http://www.kernel.org/doc/man-pages/.

Linux                             2007-07-26                    GETHOSTNAME(2)