sysinfo(2) - wariua/manpages-ko GitHub Wiki
sysinfo - ์์คํ ์ ๋ณด ๋ฐํ
#include <sys/sysinfo.h>
int sysinfo(struct sysinfo *info);
sysinfo()
๋ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์ค์ ์ฌ์ฉ, ๊ทธ๋ฆฌ๊ณ ํ๊ท ๋ถํ์ ๋ํ ๋ช ๊ฐ์ง ํต๊ณ๋ฅผ ๋ฐํํ๋ค.
๋ฆฌ๋
์ค 2.3.16๊น์ง์์ sysinfo()
๋ ๋ค์ ๊ตฌ์กฐ์ฒด๋ก ์ ๋ณด๋ฅผ ๋ฐํํ๋ค.
struct sysinfo {
long uptime; /* ๋ถํ
ํ ์ง๋ ์ด */
unsigned long loads[3]; /* 1๋ถ, 5๋ถ, 15๋ถ ํ๊ท ๋ถํ */
unsigned long totalram; /* ์ฌ์ฉ ๊ฐ๋ฅํ ์ฃผ ๋ฉ๋ชจ๋ฆฌ ์ดํฌ๊ธฐ */
unsigned long freeram; /* ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ */
unsigned long sharedram; /* ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์ */
unsigned long bufferram; /* ๋ฒํผ์์ ์ฐ๋ ๋ฉ๋ชจ๋ฆฌ */
unsigned long totalswap; /* ์ค์ ๊ณต๊ฐ ์ดํฌ๊ธฐ */
unsigned long freeswap; /* ์์ง ์ฌ์ฉ ๊ฐ๋ฅํ ์ค์ ๊ณต๊ฐ */
unsigned short procs; /* ํ์ฌ ํ๋ก์ธ์ค ๊ฐ์ */
char _f[22]; /* ๊ตฌ์กฐ์ฒด๋ฅผ 64๋นํธ๋ก ์ฑ์ฐ๊ธฐ */
};
์ ๊ตฌ์กฐ์ฒด์์ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์ค์ ํ๋์ ํฌ๊ธฐ๋ ๋ฐ์ดํธ ๋จ์์ด๋ค.
๋ฆฌ๋ ์ค 2.3.23(i386) ๋ฐ 2.3.48(๋ชจ๋ ์ํคํ ์ฒ)๋ถํฐ๋ ๋ค์ ๊ตฌ์กฐ์ฒด์ด๋ค.
struct sysinfo {
long uptime; /* ๋ถํ
ํ ์ง๋ ์ด */
unsigned long loads[3]; /* 1๋ถ, 5๋ถ, 15๋ถ ํ๊ท ๋ถํ */
unsigned long totalram; /* ์ฌ์ฉ ๊ฐ๋ฅํ ์ฃผ ๋ฉ๋ชจ๋ฆฌ ์ดํฌ๊ธฐ */
unsigned long freeram; /* ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ */
unsigned long sharedram; /* ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์ */
unsigned long bufferram; /* ๋ฒํผ์์ ์ฐ๋ ๋ฉ๋ชจ๋ฆฌ */
unsigned long totalswap; /* ์ค์ ๊ณต๊ฐ ์ดํฌ๊ธฐ */
unsigned long freeswap; /* ์์ง ์ฌ์ฉ ๊ฐ๋ฅํ ์ค์ ๊ณต๊ฐ */
unsigned short procs; /* ํ์ฌ ํ๋ก์ธ์ค ๊ฐ์ */
unsigned long totalhigh; /* ์์ ๋ฉ๋ชจ๋ฆฌ ์ดํฌ๊ธฐ */
unsigned long freehigh; /* ์ฌ์ฉ ๊ฐ๋ฅํ ์์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ */
unsigned int mem_unit; /* ๋ฉ๋ชจ๋ฆฌ ๋จ์ ํฌ๊ธฐ์ ๋ฐ์ดํธ ์ */
char _f[20-2*sizeof(long)-sizeof(int)];
/* ๊ตฌ์กฐ์ฒด๋ฅผ 64๋นํธ๋ก ์ฑ์ฐ๊ธฐ */
};
์ ๊ตฌ์กฐ์ฒด์์ ๋ฉ๋ชจ๋ฆฌ ๋ฐ ์ค์ ํ๋์ ํฌ๊ธฐ๋ mem_unit
๋ฐ์ดํธ๊ฐ ๋จ์์ด๋ค.
์ฑ๊ณต ์ sysinfo()
๋ 0์ ๋ฐํํ๋ค. ์ค๋ฅ ์ -1์ ๋ฐํํ๋ฉฐ ์ค๋ฅ ์์ธ์ ๋ํ๋ด๋๋ก errno
๋ฅผ ์ค์ ํ๋ค.
EFAULT
-
info
๊ฐ ์ ํจํ ์ฃผ์๊ฐ ์๋๋ค.
๋ฆฌ๋
์ค 0.98.pl6์์ sysinfo()
๊ฐ ์ฒ์ ๋ฑ์ฅํ๋ค.
์ด ํจ์๋ ๋ฆฌ๋ ์ค ์ ์ฉ์ด๋ฏ๋ก ์ด์์ฑ์ด ์์ด์ผ ํ๋ ํ๋ก๊ทธ๋จ์์๋ ์ฌ์ฉํ์ง ๋ง์์ผ ํ๋ค.
์ด ์์คํ
ํธ์ถ์์ ์ ๊ณตํ๋ ์ ๋ณด ๋ชจ๋๋ฅผ /proc/meminfo
๋ฐ /proc/loadavg
๋ฅผ ํตํด์๋ ์ป์ ์ ์๋ค.
2017-09-15