Different systems provide different ways for obtaining information about the system. On Berkeley Software Distribution (BSD) systems, the sysctl() interface provides access to system information. On System V systems, the sysinfo() call provides system information.
Some system information can be obtained using POSIX routines and some cannot. The POSIX system information routines return strings, paths, and numeric values, including two-valued Boolean conditions. The header file <limits.h> contains macros that define system limits.
Interix Software Development Kit (SDK) also provides both uname() and gethostbyname().