mirror of https://github.com/mkerrisk/man-pages
125 lines
3.7 KiB
Groff
125 lines
3.7 KiB
Groff
.\" Hey Emacs! This file is -*- nroff -*- source.
|
|
.\"
|
|
.\" Copyright 1993 Rickard E. Faith (faith@cs.unc.edu)
|
|
.\"
|
|
.\" Permission is granted to make and distribute verbatim copies of this
|
|
.\" manual provided the copyright notice and this permission notice are
|
|
.\" preserved on all copies.
|
|
.\"
|
|
.\" Permission is granted to copy and distribute modified versions of this
|
|
.\" manual under the conditions for verbatim copying, provided that the
|
|
.\" entire resulting derived work is distributed under the terms of a
|
|
.\" permission notice identical to this one.
|
|
.\"
|
|
.\" Since the Linux kernel and libraries are constantly changing, this
|
|
.\" manual page may be incorrect or out-of-date. The author(s) assume no
|
|
.\" responsibility for errors or omissions, or for damages resulting from
|
|
.\" the use of the information contained herein. The author(s) may not
|
|
.\" have taken the same level of care in the production of this manual,
|
|
.\" which is licensed free of charge, as they might when working
|
|
.\" professionally.
|
|
.\"
|
|
.\" Formatted or processed versions of this manual, if unaccompanied by
|
|
.\" the source, must acknowledge the copyright and authors of this work.
|
|
.\"
|
|
.\" Modified 1995-07-22 by Michael Chastain <mec@duracef.shout.net>:
|
|
.\" 'gethostname' is real system call on Linux/Alpha.
|
|
.\" Modified 1997-01-31 by Eric S. Raymond <esr@thyrsus.com>
|
|
.\" Modified 2000-06-04, 2001-12-15 by aeb
|
|
.\" Modified 2004-06-17 by mtk
|
|
.\"
|
|
.TH GETHOSTNAME 2 2004-06-17 "Linux 2.6.7" "Linux Programmer's Manual"
|
|
.SH NAME
|
|
gethostname, sethostname \- get/set host name
|
|
.SH SYNOPSIS
|
|
.B #include <unistd.h>
|
|
.sp
|
|
.BI "int gethostname(char *" name ", size_t " len );
|
|
.br
|
|
.BI "int sethostname(const char *" name ", size_t " len );
|
|
.SH DESCRIPTION
|
|
These system calls are used to access or to change the host name of the
|
|
current processor.
|
|
The
|
|
.BR gethostname ()
|
|
system call returns a null-terminated hostname (set earlier by
|
|
.BR sethostname ())
|
|
in the array \fIname\fP that has a length of \fIlen\fP 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.
|
|
.SH "RETURN VALUE"
|
|
On success, zero is returned. On error, \-1 is returned, and
|
|
.I errno
|
|
is set appropriately.
|
|
.SH ERRORS
|
|
.TP
|
|
.B EFAULT
|
|
.I name
|
|
is an invalid address.
|
|
.TP
|
|
.B EINVAL
|
|
.I len
|
|
is negative or, for
|
|
.BR sethostname (),
|
|
.I len
|
|
is larger than the maximum allowed size,
|
|
or, for
|
|
.BR gethostname ()
|
|
on Linux/i386,
|
|
.I len
|
|
is smaller than the actual size.
|
|
(In this last case glibc 2.1 uses ENAMETOOLONG.)
|
|
.TP
|
|
.B EPERM
|
|
For
|
|
.BR sethostname (),
|
|
the caller did not have the
|
|
.B CAP_SYS_ADMIN
|
|
capability.
|
|
.SH "CONFORMING TO"
|
|
SVr4, 4.4BSD (this interfaces first appeared in 4.2BSD).
|
|
POSIX.1-2001 specifies
|
|
.BR gethostname ()
|
|
but not
|
|
.BR sethostname ().
|
|
.SH NOTES
|
|
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'.
|
|
.SH "GLIBC NOTES"
|
|
The GNU C library implements
|
|
.BR gethostname ()
|
|
as a library function that calls
|
|
.BR uname (2)
|
|
and copies up to
|
|
.I len
|
|
bytes from the returned
|
|
.I nodename
|
|
field into
|
|
.IR name .
|
|
Having performed the copy, the function then checks if the length of the
|
|
.I nodename
|
|
was greater than or equal to
|
|
.IR len ,
|
|
and if it is, then the function returns \-1 with
|
|
.I errno
|
|
set to
|
|
.BR ENAMETOOLONG .
|
|
Versions of glibc before 2.2
|
|
.\" At least glibc 2.0 and 2.1, older versions not checked
|
|
handle the case where the length of the
|
|
.I nodename
|
|
was greater than or equal to
|
|
.IR len
|
|
differently: nothing is copied into
|
|
.I name
|
|
and the function returns \-1 with
|
|
.I errno
|
|
set to
|
|
.BR ENAMETOOLONG .
|
|
.SH "SEE ALSO"
|
|
.BR getdomainname (2),
|
|
.BR setdomainname (2),
|
|
.BR uname (2)
|