Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


gethostname(2) — Linux manual page

NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |VERSIONS |STANDARDS |HISTORY |SEE ALSO |COLOPHON

gethostname(2)             System Calls Manualgethostname(2)

NAME        top

       gethostname, sethostname - get/set hostname

LIBRARY        top

       Standard C library (libc,-lc)

SYNOPSIS        top

#include <unistd.h>int gethostname(char *name, size_tsize);int sethostname(const char *name, size_tsize);   Feature Test Macro Requirements for glibc (seefeature_test_macros(7)):gethostname():           _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L               || /* glibc 2.19 and earlier */ _BSD_SOURCEsethostname():           Since glibc 2.21:               _DEFAULT_SOURCE           In glibc 2.19 and 2.20:               _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)           Up to and including glibc 2.19:               _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)

DESCRIPTION        top

       These system calls are used to access or to change the system       hostname.  More precisely, they operate on the hostname associated       with the calling process's UTS namespace.sethostname() sets the hostname to the value given in the       character arrayname.  Thesize argument specifies the number of       bytes inname.  (Thus,name does not require a terminating null       byte.)gethostname() returns the null-terminated hostname in the       character arrayname, which has a size ofsize bytes.  If the       null-terminated hostname is too large to fit, then the name is       truncated, and no error is returned (but see VERSIONS below).       POSIX.1 says that if such truncation occurs, then it is       unspecified whether the returned buffer includes a terminating       null byte.

RETURN VALUE        top

       On success, zero is returned.  On error, -1 is returned, anderrno       is set to indicate the error.

ERRORS        top

EFAULTname is an invalid address.EINVALsize is negative or, forsethostname(),size is larger than              the maximum allowed size.ENAMETOOLONG              (glibcgethostname())size is smaller than the actual size.              (Before glibc 2.1, glibc usesEINVALfor this case.)EPERMForsethostname(), the caller did not have theCAP_SYS_ADMINcapability in the user namespace associated              with its UTS namespace (seenamespaces(7)).

VERSIONS        top

       SUSv2 guarantees that "Host names are limited to 255 bytes".       POSIX.1 guarantees that "Host names (not including the terminating       null byte) are limited toHOST_NAME_MAXbytes".  On Linux,HOST_NAME_MAXis defined with the value 64, which has been the       limit since Linux 1.0 (earlier kernels imposed a limit of 8       bytes).C library/kernel differences       The GNU C library does not employ thegethostname() system call;       instead, it implementsgethostname() as a library function that       callsuname(2) and copies up tosize bytes from the returnednodename field intoname.  Having performed the copy, the function       then checks if the length of thenodename was greater than or       equal tosize, and if it is, then the function returns -1 witherrno set toENAMETOOLONG; in this case, a terminating null byte       is not included in the returnedname.

STANDARDS        top

gethostname()              POSIX.1-2008.sethostname()              None.

HISTORY        top

       SVr4, 4.4BSD (these interfaces first appeared in 4.2BSD).       POSIX.1-2001 and POSIX.1-2008 specifygethostname() but notsethostname().       Versions of glibc before glibc 2.2 handle the case where the       length of thenodename was greater than or equal tosize       differently: nothing is copied intoname and the function returns       -1 witherrno set toENAMETOOLONG.

SEE ALSO        top

hostname(1),getdomainname(2),setdomainname(2),uname(2),uts_namespaces(7)

COLOPHON        top

       This page is part of theman-pages (Linux kernel and C library       user-space interface documentation) project.  Information about       the project can be found at        ⟨https://www.kernel.org/doc/man-pages/⟩.  If you have a bug report       for this manual page, see       ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.       This page was obtained from the tarball man-pages-6.15.tar.gz       fetched from       ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on       2025-08-11.  If you discover any rendering problems in this HTML       version of the page, or you believe there is a better or more up-       to-date source for the page, or you have corrections or       improvements to the information in this COLOPHON (which isnot       part of the original manual page), send a mail to       man-pages@man7.orgLinux man-pages 6.15            2025-05-17gethostname(2)

Pages that refer to this page:crontab(1)hostname(1)logger(1)pmhostname(1)getdomainname(2)syscalls(2)uname(2)gethostid(3)rcmd(3)sysconf(3)hostname(5)org.freedesktop.hostname1(5)resolv.conf(5)systemd.unit(5)capabilities(7)user_namespaces(7)uts_namespaces(7)cron(8)lsof(8)nss-myhostname(8)systemd-hostnamed.service(8)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp