sysinfo(2) sysinfo(2)
NAME
sysinfo - get and set system information strings
SYNOPSIS
#include <sys/systeminfo.h>
long sysinfo (int command, char *buf, long count);
DESCRIPTION
sysinfo copies information relating to the UNIX system on which the
process is executing into the buffer pointed to by buf; sysinfo can
also set certain information where appropriate commands are
available. count is the size of the buffer.
The POSIX P1003.1 interface sysconf [see sysconf(2)] provides a
similar class of configuration information, but returns an integer
rather than a string.
The commands available are:
SI_SYSNAME
Copy into the array pointed to by buf the string that would be
returned by uname [see uname(2)] in the sysname field. This
is the name of the implementation of the operating system,
e.g., System V or UTS.
SI_HOSTNAME
Copy into the array pointed to by buf a string that names the
present host machine. This is the string that would be
returned by uname [see uname(2)] in the nodename field. This
hostname or nodename is often the name the machine is known by
locally.
The hostname is the name of this machine as a node in some
network; different networks may have different names for the
node, but presenting the nodename to the appropriate network
Directory or name-to-address mapping service should produce a
transport end point address. The name may not be fully
qualified.
Internet host names may be up to 256 bytes in length (plus the
terminating null).
SI_SET_HOSTNAME
Copy the null-terminated contents of the array pointed to by
buf into the string maintained by the kernel whose value will
be returned by succeeding calls to sysinfo with the command
SIHOSTNAME. This command requires that the effective-user-id
be super-user.
8/91 Page 1
sysinfo(2) sysinfo(2)
SI_RELEASE
Copy into the array pointed to by buf the string that would be
returned by uname [see uname(2)] in the release field.
Typical values might be 4.0 or 3.2.
SI_VERSION
Copy into the array pointed to by buf the string that would be
returned by uname [see uname(2)] in the version field. The
syntax and semantics of this string are defined by the system
provider.
SI_MACHINE
Copy into the array pointed to by buf the string that would be
returned by uname [see uname(2)] in the machine field.
SI_ARCHITECTURE
Copy into the array pointed to by buf a string describing the
instruction set architecture of the current system, e.g.,
mc68030, m32100, or i80486. These names may not match
predefined names in the C language compilation system.
SI_HW_PROVIDER
Copies the name of the hardware manufacturer into the array
pointed to by buf.
SI_HW_SERIAL
Copy into the array pointed to by buf a string which is the
ASCII representation of the hardware-specific serial number of
the physical machine on which the system call is executed.
Note that this may be implemented in Read-Only Memory, via
software constants set when building the operating system, or
by other means, and may contain non-numeric characters. It is
anticipated that manufacturers will not issue the same
``serial number'' to more than one physical machine. The pair
of strings returned by SIHWPROVIDER and SIHWSERIAL is
likely to be unique across all vendor's System V
implementations.
SI_SRPC_DOMAIN
Copies the Secure Remote Procedure Call domain name into the
array pointed to by buf.
SI_SET_SRPC_DOMAIN
Set the string to be returned by sysinfo with the
SI_SRPC_DOMAIN command to the value contained in the array
pointed to by buf. This command requires that the effective-
user-id be super-user.
sysinfo will fail if one or both of the following are true:
Page 2 8/91
sysinfo(2) sysinfo(2)
EPERM The process does not have appropriate privilege for a SET
commands.
EINVAL
buf does not point to a valid address, or the data for a SET
command exceeds the limits established by the implementation.
DIAGNOSTICS
Upon successful completion, the value returned indicates the buffer
size in bytes required to hold the complete value and the terminating
null character. If this value is no greater than the value passed in
count, the entire string was copied; if this value is greater than
count, the string copied into buf has been truncated to count-1 bytes
plus a terminating null character.
Otherwise, a value of -1 is returned and errno is set to indicate the
error.
USAGE
There is in many cases no corresponding programmatic interface to set
these values; such strings are typically settable only by the system
administrator modifying entries in the master.d directory or the code
provided by the particular OEM reading a serial number or code out of
read-only memory, or hard-coded in the version of the operating
system.
A good starting guess for count is 257, which is likely to cover all
strings returned by this interface in typical installations.
SEE ALSO
uname(2), sysconf(2);
BSD compatibility package interfaces gethostname(3), gethostid(3).
8/91 Page 3