uname.3p (3805B)
- '\" et
- .TH UNAME "3P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
- .\"
- .SH PROLOG
- This manual page is part of the POSIX Programmer's Manual.
- The Linux implementation of this interface may differ (consult
- the corresponding Linux manual page for details of Linux behavior),
- or the interface may not be implemented on Linux.
- .\"
- .SH NAME
- uname
- \(em get the name of the current system
- .SH SYNOPSIS
- .LP
- .nf
- #include <sys/utsname.h>
- .P
- int uname(struct utsname *\fIname\fP);
- .fi
- .SH DESCRIPTION
- The
- \fIuname\fR()
- function shall store information identifying the current system in the
- structure pointed to by
- .IR name .
- .P
- The
- \fIuname\fR()
- function uses the
- .BR utsname
- structure defined in
- .IR <sys/utsname.h> .
- .P
- The
- \fIuname\fR()
- function shall return a string naming the current system in the
- character array
- .IR sysname .
- Similarly,
- .IR nodename
- shall contain the name of this node within an implementation-defined
- communications network. The arrays
- .IR release
- and
- .IR version
- shall further identify the operating system. The array
- .IR machine
- shall contain a name that identifies the hardware that the system
- is running on.
- .P
- The format of each member is implementation-defined.
- .SH "RETURN VALUE"
- Upon successful completion, a non-negative value shall be returned.
- Otherwise, \-1 shall be returned and
- .IR errno
- set to indicate the error.
- .SH ERRORS
- No errors are defined.
- .LP
- .IR "The following sections are informative."
- .SH EXAMPLES
- None.
- .SH "APPLICATION USAGE"
- The inclusion of the
- .IR nodename
- member in this structure does not imply that it is sufficient
- information for interfacing to communications networks.
- .SH RATIONALE
- The values of the structure members are not constrained to have any
- relation to the version of this volume of POSIX.1\(hy2017 implemented in the operating
- system. An application should instead depend on _POSIX_VERSION
- and related constants defined in
- .IR <unistd.h> .
- .P
- This volume of POSIX.1\(hy2017 does not define the sizes of the members of the structure
- and permits them to be of different sizes, although most
- implementations define them all to be the same size: eight bytes plus
- one byte for the string terminator. That size for
- .IR nodename
- is not enough for use with many networks.
- .P
- The
- \fIuname\fR()
- function originated in System III, System V, and related
- implementations,
- and it does not exist in Version 7 or
- 4.3 BSD. The values it returns are set at system compile time in those
- historical implementations.
- .P
- 4.3 BSD has
- \fIgethostname\fR()
- and
- \fIgethostid\fR(),
- which return a symbolic name and a numeric value, respectively. There
- are related
- \fIsethostname\fR()
- and
- \fIsethostid\fR()
- functions that are used to set the values the other two functions
- return. The former functions are included in this specification, the
- latter are not.
- .SH "FUTURE DIRECTIONS"
- None.
- .SH "SEE ALSO"
- The Base Definitions volume of POSIX.1\(hy2017,
- .IR "\fB<sys_utsname.h>\fP"
- .\"
- .SH COPYRIGHT
- Portions of this text are reprinted and reproduced in electronic form
- from IEEE Std 1003.1-2017, Standard for Information Technology
- -- Portable Operating System Interface (POSIX), The Open Group Base
- Specifications Issue 7, 2018 Edition,
- Copyright (C) 2018 by the Institute of
- Electrical and Electronics Engineers, Inc and The Open Group.
- In the event of any discrepancy between this version and the original IEEE and
- The Open Group Standard, the original IEEE and The Open Group Standard
- is the referee document. The original Standard can be obtained online at
- http://www.opengroup.org/unix/online.html .
- .PP
- Any typographical or formatting errors that appear
- in this page are most likely
- to have been introduced during the conversion of the source files to
- man page format. To report such errors, see
- https://www.kernel.org/doc/man-pages/reporting_bugs.html .