| .\" Copyright (C) 2016, Michael Kerrisk <mtk.manpages@gmail.com> |
| .\" Based on an earlier version of the page where a few pieces were |
| .\" copyright (C) 1993 by Dan Miner (dminer@nyx.cs.du.edu) and subsequently |
| .\" others (see old changelog below). |
| .\" The structure definitions are taken more or less straight from the kernel |
| .\" source files. |
| .\" |
| .\" %%%LICENSE_START(VERBATIM) |
| .\" Permission is granted to make and distribute verbatim copies of this |
| .\" manual provided the copyright notice and this permission notice are |
| .\" preserved on all copies. |
| .\" |
| .\" Permission is granted to copy and distribute modified versions of this |
| .\" manual under the conditions for verbatim copying, provided that the |
| .\" entire resulting derived work is distributed under the terms of a |
| .\" permission notice identical to this one. |
| .\" |
| .\" Since the Linux kernel and libraries are constantly changing, this |
| .\" manual page may be incorrect or out-of-date. The author(s) assume no |
| .\" responsibility for errors or omissions, or for damages resulting from |
| .\" the use of the information contained herein. The author(s) may not |
| .\" have taken the same level of care in the production of this manual, |
| .\" which is licensed free of charge, as they might when working |
| .\" professionally. |
| .\" |
| .\" Formatted or processed versions of this manual, if unaccompanied by |
| .\" the source, must acknowledge the copyright and authors of this work. |
| .\" %%%LICENSE_END |
| .\" |
| .\" |
| .\" Modified Sat Jul 24 12:35:12 1993 by Rik Faith <faith@cs.unc.edu> |
| .\" Modified Tue Oct 22 22:29:51 1996 by Eric S. Raymond <esr@thyrsus.com> |
| .\" Modified Mon Aug 25 16:06:11 1997 by Nicolรกs Lichtmaier <nick@debian.org> |
| .\" |
| .TH SYSINFO 2 2017-09-15 "Linux" "Linux Programmer's Manual" |
| .SH NAME |
| sysinfo \- return system information |
| .SH SYNOPSIS |
| .B #include <sys/sysinfo.h> |
| .PP |
| .BI "int sysinfo(struct sysinfo *" info ); |
| .SH DESCRIPTION |
| .BR sysinfo () |
| returns certain statistics on memory and swap usage, |
| as well as the load average. |
| .PP |
| Until Linux 2.3.16, |
| .BR sysinfo () |
| returned information in the following structure: |
| .PP |
| .in +4n |
| .EX |
| 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 */ |
| }; |
| .EE |
| .in |
| .PP |
| In the above structure, the sizes of the memory and swap fields |
| are given in bytes. |
| .PP |
| Since Linux 2.3.23 (i386) and Linux 2.3.48 |
| (all architectures) the structure is: |
| .PP |
| .in +4n |
| .EX |
| 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 */ |
| unsigned long totalhigh; /* Total high memory size */ |
| unsigned long freehigh; /* Available high memory size */ |
| unsigned int mem_unit; /* Memory unit size in bytes */ |
| char _f[20\-2*sizeof(long)\-sizeof(int)]; |
| /* Padding to 64 bytes */ |
| }; |
| .EE |
| .in |
| .PP |
| In the above structure, |
| sizes of the memory and swap fields are given as multiples of |
| .I mem_unit |
| bytes. |
| .SH RETURN VALUE |
| On success, |
| .BR sysinfo () |
| returns zero. |
| On error, \-1 is returned, and |
| .I errno |
| is set to indicate the cause of the error. |
| .SH ERRORS |
| .TP |
| .B EFAULT |
| .IR info |
| is not a valid address. |
| .SH VERSIONS |
| .BR sysinfo () |
| first appeared in Linux 0.98.pl6. |
| .SH CONFORMING TO |
| This function is Linux-specific, and should not be used in programs |
| intended to be portable. |
| .SH NOTES |
| All of the information provided by this system call is also available via |
| .IR /proc/meminfo |
| and |
| .IR /proc/loadavg . |
| .SH SEE ALSO |
| .BR proc (5) |