c api로 cpu개수 알아오기.?

amiwinner의 이미지

안녕하세요.
이전에 윈도우에서 작업할때는 winapi로 systeminfo를 얻어와
적절한 스레드풀에 생성될 적절한 스레드개수를 지정해놓고는 했는데
리눅스에서는 어떻게 cpu개수를 얻어와야 할지 모르겠네요..

검색을 해봐도 /proc/cpuinfo 뿐. ㅠ.ㅠ.
공인된방식으로 cpu개수를 얻어오는 방법은 없을까요?

리눅스로 옮겨온지 얼마되지 않아서 삽질하는것이 한둘이 아니네요. ㅠ.

도움부탁드립니다.~ ^^;

JuEUS-U의 이미지

공인된 방식이라뇨 - -?;;;
리눅스는 그런 방식으로 하는게 특징입니다....;;

amiwinner의 이미지

그럼 직접 /proc/cpuinfo 파일을 읽어들여서 알아와야 하는건가요?
제가 리눅스는 개념이 부족하다보니. ㅡ.-;
그럼 요즘 나오는 듀얼코어같은경우 윈도우는 cpu가2개로 나오던데.
리눅스도 마찬가지로 2개로 나오나요??

JuEUS-U의 이미지

물론입니다.
그리고 코어의 갯수는 'cpu cores' 값만 알면 됩니다.

절차탁마의 이미지

sysconf()를 이용하면 됩니다.

printf("%d\n", sysconf(_SC_NPROCESSORS_CONF));
printf("%d\n", sysconf(_SC_NPROCESSORS_ONLN));

man page와 함께 unistd.h 참조하시고요,
fpathconf(), pathconf()도 같이 봐주세요

amiwinner의 이미지

내용무