sysinfo(2)
NAME
sysinfo - get and set system information strings
SYNOPSIS
#include <sys/systeminfo.h>
long sysinfo(int command, char *buf, long count);
DESCRIPTION
The sysinfo() function copies information relating to the
operating system on which the process is executing into the
buffer pointed to by buf. It can also set certain informa-
tion where appropriate commands are available. The count
parameter indicates the size of the buffer.
The POSIX P1003.1 interface (see standards(5)) sysconf(3C)
provides a similar class of configuration information, but
returns an integer rather than a string.
The values for command are as follows:
SI_SYSNAME
Copy into the array pointed to by buf the string that
would be returned by uname(2) in the sysname field.
This is the name of the implementation of the operat-
ing system, for example, SunOS 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(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. Dif-
ferent 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 SI_HOSTNAME. This command
requires that the effective-user-id be super-user.
SI_RELEASE
Copy into the array pointed to by buf the string that
would be returned by uname(2) in the release field.
Typical values might be 5.2 or 4.1.
SI_VERSION
Copy into the array pointed to by buf the string that
would be returned by 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(2) in the machine field,
for example, sun4u.
SI_ARCHITECTURE
Copy into the array pointed to by buf a string
describing the basic instruction set architecture of
the current system, for example, sparc, mc68030,
m32100, or i386. These names may not match predefined
names in the C language compilation system.
SI_ISALIST
Copy into the array pointed to by buf the names of the
variant instruction set architectures executable on
the current system.
The names are space-separated and are ordered in the
sense of best performance. That is, earlier-named
instruction sets may contain more instructions than
later-named instruction sets; a program that is com-
piled for an earlier-named instruction set will most
likely run faster on this machine than the same pro-
gram compiled for a later-named instruction set.
Programs compiled for an instruction set that does not
appear in the list will most likely experience perfor-
mance degradation or not run at all on this machine.
The instruction set names known to the system are
listed in isalist(5); these names may or may not match
predefined names or compiler options in the C language
compilation system.
SI_PLATFORM
Copy into the array pointed to by buf a string
describing the specific model of the hardware plat-
form, for example, SUNW,Sun_4_75, SUNW,SPARCsystem-
600, or i86pc.
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
function is executed. Note that this may be imple-
mented in Read-Only Memory, using 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 SI_HW_PROVIDER and
SI_HW_SERIAL is likely to be unique across all
vendor's SVR4 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.
SI_DHCP_CACHE
Copy into the array pointed to by buf an ASCII string
consisting of the ASCII hexidecimal encoding of the
name of the interface configured by boot(1M) followed
by the DHCPACK reply from the server. This command is
intended for use only by the dhcpagent(1M) DHCP client
daemon for the purpose of adopting the DHCP mainte-
nance of the interface configured by boot.
RETURN VALUES
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, -1 is returned and errno is set to indicate the
error.
ERRORS
The sysinfo() function will fail if:
EFAULT
The buf argument does not point to a valid address.
EINVAL
The data for a SET command exceeds the limits esta-
blished by the implementation.
EPERM The effective user of the calling process is not
super-user.
USAGE
In many cases there is no corresponding programming inter-
face to set these values; such strings are typically sett-
able only by the system administrator modifying entries in
the /etc/system directory or the code provided by the par-
ticular OEM reading a serial number or code out of read-only
memory, or hard-coded in the version of the operating sys-
tem.
A good estimation for count is 257, which is likely to cover
all strings returned by this interface in typical installa-
tions.
SEE ALSO
boot(1M), dhcpagent(1M), uname(2), gethostid(3C),
gethostname(3C), sysconf(3C), isalist(5), standards(5)
Man(1) output converted with
man2html