Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

<a href="/modules/moniwiki/wiki.php/manSearch?google=none&name=sysinfo">sysinfo</a>(2)

1장. sysinfo(2)

차례
1.1절. 사용법
1.2절. 설명
1.3절. 반환값
1.4절. 에러
1.5절. 예제

전체적인 시스템 정보 가져오기


1.1절. 사용법

#include <sys/sysinfo.h>

int sysinfo(struct sysinfo *info);
		


1.2절. 설명

sysinfo() 는 전체적인 시스템 통계 정보를 가져오기 위해서 사용한다. 가져온 정보는 struct sysinfo 에 채워진다.

struct sysinfo 는 다음과 같은 멤버변수를 가진다.

struct sysinfo {
     long uptime;              /* 부팅 이후 지나간 초단위 시간*/
     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 bytes로 채운다(pad)*/
};
		


1.3절. 반환값

성공할경우 0을 실패했을경우에는 -1을 반환하며, 적당한 errno 값을 설정한다.


1.4절. 에러

다양한 원인에 의해서 에러가 발생할수 있으며 아래와 같은 에러 메시지들이 있다.

EFAULT

struct sysinfo 가 가르키는 포인터가 유효하지 않다.


1.5절. 예제

#include <sys/sysinfo.h>

int main()
{
    struct sysinfo info;
    sysinfo(&info); 

    printf("load: %d %d %d\n", info.loads[0],
                                info.loads[1],
                                info.loads[2]);

    printf("mem : %d %d %d\n", info.totalram, 
                                info.totalram-info.freeram,
                                info.freeram);
}