get_nprocs, get_nprocs_conf -
プロセッサ数を取得する
#include <sys/sysinfo.h>
int get_nprocs(void);
int get_nprocs_conf(void);
get_nprocs_conf()
関数は、オペレーティングシステムで
設定されているプロセッサ数を返す。
get_nprocs()
関数は、システムで現在利用可能なプロセッサ数を返す。
(例えば、ホットプラグが可能なシステムでは)
オフラインになっているプロセッサがある場合があるので、
この数は
get_nprocs_conf()
が返す数より小さい場合がある。
「説明」の節で説明した通りである。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
get_nprocs(), get_nprocs_conf() |
Thread safety |
MT-Safe |
これらの関数は GNU
による拡張である。
これらの関数の現在の実装はかなりコストがかかる実装になっている。
関数が呼ばれる度に
/sys
ファイルシステム内のファイルをオープンして
解析するようになっているからである。
以下の
sysconf(3)
の呼び出しで、このページに書かれている関数を使った
場合に返されるのと同じ情報を得ることができる。
np = sysconf(_SC_NPROCESSORS_CONF); /* processors configured */
np = sysconf(_SC_NPROCESSORS_ONLN); /* processors available */
以下の例は、
get_nprocs() と
get_nprocs_conf() が
どのように利用できるかを示すものである。
#include <stdlib.h>
#include <stdio.h>
#include <sys/sysinfo.h>
int
main(int argc, char *argv[])
{
printf("This system has %d processors configured and "
"%d processors available.\n",
get_nprocs_conf(), get_nprocs());
exit(EXIT_SUCCESS);
}
nproc(1)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。