SYSINFO(2)

NAME
sysinfo - returns information on overall system statistics

SYNOPSIS
As of Linux 0.99.10 and libc release 5.2

#include <sys/sysinfo.h>

int sysinfo(struct sysinfo *info);

DESCRIPTION
sysinfo returns information in the following structure:
    struct sysinfo {
    	long uptime;              /* Seconds since boot */
    	unsigned long loads[3];   /* 1, 5, and 15 minute load averages */
    	unsigned long totalram;   /* Total usable main memory size */
    	unsigned long freeram;    /* Available memory size */
    	unsigned long sharedram;  /* Amount of shared memory */
    	unsigned long bufferram;  /* Memory used by buffers */
    	unsigned long totalswap;  /* Total swap space size */
    	unsigned long freeswap;   /* swap space still available */
    	unsigned short procs;     /* Number of current processes */
    	char _f[22];              /* Pads structure to 64 bytes */
    };
sysinfo provides a simple way of getting overall system statistics. This is more portable than reading /dev/kmem.

RETURN VALUE
On success, zero is returned. On error, -1 is returned, and errno is set appropriately.

ERRORS

EFAULT
    pointer to struct sysinfo is invalid

CONFORMING TO
This function is Linux-specific.

BUGS
The Linux DLL 4.4.1 libraries do not contain a proper prototype for this function. As of libc 4.6.27 (a.out) and libc 5.2.18 (ELF) they do not even contain this function, although the patch should work with older libraries too.