OSDN Git Service

Retire LDP man-pages repository
[linuxjm/LDP_man-pages.git] / original / man2 / uname.2
diff --git a/original/man2/uname.2 b/original/man2/uname.2
deleted file mode 100644 (file)
index 858944a..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-.\" Copyright (C) 2001 Andries Brouwer <aeb@cwi.nl>.
-.\"
-.\" %%%LICENSE_START(VERBATIM)
-.\" 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.
-.\" %%%LICENSE_END
-.\"
-.\" 2007-07-05 mtk: Added details on underlying system call interfaces
-.\"
-.TH UNAME 2 2014-09-21 "Linux" "Linux Programmer's Manual"
-.SH NAME
-uname \- get name and information about current kernel
-.SH SYNOPSIS
-.B #include <sys/utsname.h>
-.sp
-.BI "int uname(struct utsname *" buf );
-.SH DESCRIPTION
-.BR uname ()
-returns system information in the structure pointed to by
-.IR buf .
-The
-.I utsname
-struct is defined in
-.IR <sys/utsname.h> :
-.in +4n
-.nf
-
-struct utsname {
-    char sysname[];    /* Operating system name (e.g., "Linux") */
-    char nodename[];   /* Name within "some implementation-defined
-                          network" */
-    char release[];    /* Operating system release (e.g., "2.6.28") */
-    char version[];    /* Operating system version */
-    char machine[];    /* Hardware identifier */
-#ifdef _GNU_SOURCE
-    char domainname[]; /* NIS or YP domain name */
-#endif
-};
-
-.fi
-.in
-The length of the arrays in a
-.I struct utsname
-is unspecified (see NOTES);
-the fields are terminated by a null byte (\(aq\\0\(aq).
-.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 buf
-is not valid.
-.SH CONFORMING TO
-SVr4, POSIX.1-2001.
-There is no
-.BR uname ()
-call in 4.3BSD.
-.PP
-The
-.I domainname
-member (the NIS or YP domain name) is a GNU extension.
-.SH NOTES
-This is a system call, and the operating system presumably knows
-its name, release and version.
-It also knows what hardware it runs on.
-So, four of the fields of the struct are meaningful.
-On the other hand, the field
-.I nodename
-is meaningless:
-it gives the name of the present machine in some undefined
-network, but typically machines are in more than one network
-and have several names.
-Moreover, the kernel has no way of knowing
-about such things, so it has to be told what to answer here.
-The same holds for the additional
-.I domainname
-field.
-.LP
-To this end, Linux uses the system calls
-.BR sethostname (2)
-and
-.BR setdomainname (2).
-Note that there is no standard that says that the hostname set by
-.BR sethostname (2)
-is the same string as the
-.I nodename
-field of the struct returned by
-.BR uname ()
-(indeed, some systems allow a 256-byte hostname and an 8-byte nodename),
-but this is true on Linux.
-The same holds for
-.BR setdomainname (2)
-and the
-.I domainname
-field.
-.LP
-The length of the fields in the struct varies.
-Some operating systems
-or libraries use a hardcoded 9 or 33 or 65 or 257.
-Other systems use
-.B SYS_NMLN
-or
-.B _SYS_NMLN
-or
-.B UTSLEN
-or
-.BR _UTSNAME_LENGTH .
-Clearly, it is a bad
-idea to use any of these constants; just use sizeof(...).
-Often 257 is chosen in order to have room for an internet hostname.
-.LP
-Part of the utsname information is also accessible via
-.IR /proc/sys/kernel/ { ostype ,
-.IR hostname ,
-.IR osrelease ,
-.IR version ,
-.IR domainname }.
-.SS C library/kernel ABI differences
-.LP
-Over time, increases in the size of the
-.I utsname
-structure have led to three successive versions of
-.BR uname ():
-.IR sys_olduname ()
-(slot
-.IR __NR_oldolduname ),
-.IR sys_uname ()
-(slot
-.IR __NR_olduname ),
-and
-.IR sys_newuname ()
-(slot
-.IR __NR_uname) .
-The first one
-.\" That was back before Linux 1.0
-used length 9 for all fields;
-the second
-.\" That was also back before Linux 1.0
-used 65;
-the third also uses 65 but adds the
-.I domainname
-field.
-The glibc
-.BR uname ()
-wrapper function hides these details from applications,
-invoking the most recent version of the system call provided by the kernel.
-.SH SEE ALSO
-.BR uname (1),
-.BR getdomainname (2),
-.BR gethostname (2),
-.BR namespaces (7)
-.SH COLOPHON
-This page is part of release 3.79 of the Linux
-.I man-pages
-project.
-A description of the project,
-information about reporting bugs,
-and the latest version of this page,
-can be found at
-\%http://www.kernel.org/doc/man\-pages/.