PTHREAD_ATTR_SETAFFINITY_NP

Section: Linux Programmer's Manual (3)
Updated: 2017-09-15
Index JM Home Page
 

名前

pthread_attr_setaffinity_np, pthread_attr_getaffinity_np - スレッド属性オブジェクトの CPU affinity 属性の設定/取得を行う  

書式

#define _GNU_SOURCE             /* See feature_test_macros(7) */
#include <pthread.h>

int pthread_attr_setaffinity_np(pthread_attr_t *attr,
                   size_t cpusetsize, const cpu_set_t *cpuset);
int pthread_attr_getaffinity_np(const pthread_attr_t *attr,
                   size_t cpusetsize, cpu_set_t *cpuset);

-pthread でコンパイルしてリンクする。
 

説明

pthread_attr_setaffinity_np() 関数は、 attr が参照するスレッド属性オブジェクトの CPU affinity マスク属性を cpuset で指定された値に設定する。 この属性により、スレッド属性オブジェクト attr を使って 作成されたスレッドの CPU affinity マスクが決定される。

pthread_attr_getaffinity_np() 関数は、 attr が参照する スレッド属性オブジェクトの CPU affinity マスク属性を cpuset が指すバッファーに入れて返す。

cpusetsize 引数は cpuset が指すバッファーの (バイト単位の) 大きさである。通常は、この引数には sizeof(cpu_set_t) を 指定することだろう。

CPU affinity マスクの詳細については、 sched_setaffinity(2) を参照してほしい。 CPU 集合の操作や取得を行う際に利用できるマクロ群の説明は CPU_SET(3) を参照してほしい。  

返り値

成功すると、これらの関数は 0 を返す。 エラーの場合、0 以外のエラー番号を返す。  

エラー

EINVAL
(pthread_attr_setaffinity_np()) cpuset がカーネルがサポートする CPU 集合にない CPU を指定していた。 (CPU 集合を表現するのに使われるカーネルのデータ型がサポートする集合の範囲は、 カーネルの設定オプション CONFIG_NR_CPUS により定義される)。
EINVAL
(pthread_attr_getaffinity_np()) attr が参照するスレッド属性オブジェクトの affinity マスク内の CPU が、 cpusetsize により指定された範囲の中になかった (すなわち、cpuset/cpusetsize が小さすぎる)。
ENOMEM
(pthread_attr_setaffinity_np()) メモリーを割り当てることができなかった。
 

バージョン

これらの関数は glibc バージョン 2.3.4 以降で提供されている。  

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
pthread_attr_setaffinity_np(), pthread_attr_getaffinity_np() Thread safety MT-Safe

 

準拠

これらの関数は非標準の GNU による拡張である。 そのため、名前に "_np" (nonportable; 移植性がない) という接尾辞が 付いている。  

注意

(このバージョンだけであるが) glibc 2.3.3 では、 これらの関数は cpusetsize 引数を持っていなかった。 内部で呼ばれるシステムコールに渡される CPU セットの大きさは 常に sizeof(cpu_set_t) であった。  

関連項目

sched_setaffinity(2), pthread_attr_init(3), pthread_setaffinity_np(3), cpuset(7), pthreads(7)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

attr   属性   setaffinity   pthread   スレッド   affinity   getaffinity   マスク   集合   カーネル   size   バッファー   サポート   範囲   define   feature   macros   コンパイル   決定   バイト   単位   通常   詳細   操作   マクロ

Linux マニュアル 一覧

関連するコマンド・関数

pthread_attr_getaffinity_np.3   pthread_getaffinity_np.3   pthread_setaffinity_np.3   sched_getaffinity.2   sched_setaffinity.2   pthread_attr_getschedpolicy.3
 

Index

名前
書式
説明
返り値
エラー
バージョン
属性
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:32 GMT, October 11, 2026