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 information where appropriate
commands are available. The count parameter indicates the size of the
buffer.
The POSIX P1003.1 interface (see standards(7))
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 operating 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() 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 might 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 might not be fully qualified. Internet
host names can 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 {PRIV_SYS_ADMIN} is
asserted in the effective set of the calling process.
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 might not match predefined names in the C language compilation
system.
SI_ARCHITECTURE_64
Copy into the array pointed to by buf a string
describing the 64-bit instruction set architecture of the current system, for
example, sparcv9 or amd64. These names might not match
predefined names in the C language compilation system. This subcode is not
recognized on systems that do not allow a 64-bit application to run.
SI_ARCHITECTURE_32
Copy into the array pointed to by buf a string
describing the 32-bit instruction set architecture of the current system, for
example, sparc or i386. These names might not match predefined
names in the C language compilation system.
SI_ARCHITECTURE_K
Copy into the array pointed to by buf a string
describing the kernel instruction set architecture of the current system for
example sparcv9 or i386. These names might not match predefined
names in the C language compilation system.
SI_ARCHITECTURE_NATIVE
Copy into the array pointed to by buf a string
describing the native instruction set architecture of the current system, for
example sparcv9 or i386. These names might not match predefined
names in the C language compilation system.
SI_ADDRESS_WIDTH
Copy into the array pointed to by buf a string
describing the number of bits in the address space of the native instruction
set; e.g., 32 or 64.
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 might contain more
instructions than later-named instruction sets; a program that is compiled
for an earlier-named instruction set will most likely run faster on this
machine than the same program compiled for a later-named instruction
set.
Programs compiled for an instruction set that does not appear in
the list will most likely experience performance degradation or not run at
all on this machine.
The instruction set names known to the system are listed in
isalist(7); these names might not match predefined names or compiler
options in the C language compilation system.
This command is obsolete and might be removed in a future release.
See getisax(2) and the Linker and Libraries Guide for a better
way to handle instruction set extensions.
SI_PLATFORM
Copy into the array pointed to by buf a string
describing the specific model of the hardware platform, for example,
SUNW,Sun-Blade-1500, SUNW,Sun-Fire-T200, 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. This might be
implemented in Read-Only Memory, using software constants set when building
the operating system, or by other means, and might contain non-numeric
characters. If the function is executed within a non-global zone that emulates
a host identifier, then the ASCII representation of the zone's host identifier
is copied into the array pointed to by buf. 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 not guaranteed to be unique across all vendor's
SVR4 implementations and could change over the lifetime of a given
system.
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 {PRIV_SYS_ADMIN} is
asserted in the effective set of the calling process.
SI_DHCP_CACHE
Copy into the array pointed to by
buf an ASCII
string consisting of the ASCII hexadecimal encoding of the name of the
interface configured by
boot(8) followed by the DHCPACK reply from the
server. This command is intended for use only by the
dhcpagent(8) DHCP
client daemon for the purpose of adopting the DHCP maintenance of the
interface configured by
boot.