리눅스 / 맥오에스에서 CPU 갯수 얻기
Linux / MacOS X 플랫폼에서 CPU 갯수를 얻어오는 함수입니다. 잊어버릴까봐 기록해 둡니다.
#include <stdio.h>
#ifdef __linux__
#include <sys/sysinfo.h>
#else
#ifdef __APPLE__
#include <sys/param.h>
#include <sys/sysctl.h>
#else
#error "Only Linux or OSX is supported!"
#endif /* __APPLE__ */
#endif /* __linux__ */
static int
get_cpu_nr (void)
{
#ifdef __linux__
return get_nprocs ();
#endif
#ifdef __APPLE__
int i = 0;
size_t s = sizeof (i);
if (sysctlbyname ("hw.ncpu", &i, &s, NULL, 0))
return 1;
return i;
#endif
}
int
main (int argc, char **argv)
{
printf ("cpu_nr:%dn", get_cpu_nr ());
return 0;
}
출처는
이 소스
입니다. 참고로 리눅스의 /usr/include/sys/sysinfo.h
파일을 들여다보면 램 크기 / 스왑 크기 / 물리 페이지 크기 등과 같은 시스템 관련 정보를 얻을 수 있는 함수가 여럿 보이는군요. /proc
정보를 파싱하는 것보다 더 편리할 것 같습니다.