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:
SISYSNAME 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, for example, System V or UTS.
SIHOSTNAME 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 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).
SISETHOSTNAME
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.
SIRELEASE Copy into the array pointed to by buf the string that would
be returned by uname in the release field. Typical values
might be 4.0 or 3.2.
Page 1
sysinfo(2) sysinfo(2)
SIVERSION Copy into the array pointed to by buf the string that would
be returned by uname in the version field. The syntax and
semantics of this string are defined by the system
provider. Under IRIX, this is the date and time that the
system was generated and has the form mmddhhmm.
SIMACHINE Copy into the array pointed to by buf the string that would
be returned by uname in the machine field, for example,
IP27 or IP30.
SIARCHITECTURE
Copy into the array pointed to by buf a string describing
the instruction set architecture of the current system, for
example, MIPS-II, m32100, or i80486. These names may not
match predefined names in the C language compilation
system.
SIHWPROVIDER
Copies the name of the hardware manufacturer into the array
pointed to by buf.
SIHWSERIAL Copy into the array pointed to by buf a string which is the
ASCII representation of the 32 bit hardware-specific
identifier 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 ``32-bit identifier'' 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.
SISRPCDOMAIN
This command is not supported under IRIX.
SISETSRPCDOMAIN
This command is not supported under IRIX.
SIINITTABNAME
Copy into the array pointed to by buf a string that is the
pathname of the inittab file used by the currently running
bootable operating system. This is the same as the file
specified by the INITTAB keyword found in the system file
[see system(4)].
MIPSSIVENDOR
Copy into the array pointed to by buf a string which is the
name of the company providing the system. The vendor is the
company actually selling the product rather than the
company which built the product. Eg: "Silicon Graphics
Inc".
Page 2
sysinfo(2) sysinfo(2)
MIPSSIOSPROVIDER
Copy into the array pointed to by buf a string which is the
name of the company providing the operating system. This is
the name of the company which built the operating system.
Eg: "Silicon Graphics Inc".
MIPSSIOSNAME
Copy into the array pointed to by buf a string which is the
name of the operating system. Eg: "IRIX".
MIPSSIHWNAME
Copy into the array pointed to by buf a string which is the
name of the hardware platform. This is the name of the
platform in the pricelist. Eg: "IP19"
MIPSSINUMPROCESSORS
Copy into the array pointed to by buf a string which is the
ASCII representation of the number of configured
processors. Eg: "16"
MIPSSIHOSTID
Copy into the array pointed to by buf a string which is the
ASCII representation of the host id in hex. This example
uses sgi.sgi.com, which has an internet address of
192.26.75.5. Eg: "c01a4b05"
MIPSSIOSRELMAJ
Copy into the array pointed to by buf a string which is the
ASCII representation of the OS major release number.
MIPSSIOSRELMIN
Copy into the array pointed to by buf a string which is the
ASCII representation of the OS minor release number.
MIPSSIOSRELPATCH
Copy into the array pointed to by buf a string which is the
ASCII representation of the OS patch release number.
MIPSSIPROCESSORS
Copy into the array pointed to by buf a string which is the
processor type. In the case of a multiprocessor, this will
be a comma separated list with _MIPS_SI_NUM_PROCESSORS
entries.
MIPSSIAVAILPROCESSORS
Copy into the array pointed to by buf a string which is the
ASCII representation of the number of processors available
for running unrestricted processes.
sysinfo fails if one or both of the following are true:
Page 3
sysinfo(2) sysinfo(2)
EPERM The process does not have appropriate privilege for a SET
command.
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), gethostname(3), gethostid(3), sysconf(3C)
Page 4