-´Ø¿ô
-.BR sched_getaffinity ()
-¤ÏŤµ
-.I len
-¤Î¥Ý¥¤¥ó¥¿
-.I mask
-¤Ë¥×¥í¥»¥¹
-.I pid
-¤Î affinity ¥Þ¥¹¥¯¤ò½ñ¤¹þ¤à¡£
-.I pid
-¤¬ 0 ¤Î¾ì¹ç¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î¥Þ¥¹¥¯¤¬ÊÖ¤µ¤ì¤ë¡£
-.SH ÊÖ¤êÃÍ
-À®¸ù¤·¤¿¾ì¹ç¡¢
-.BR sched_setaffinity ()
-¤È
-.BR sched_getaffinity ()
-¤Ï 0 ¤òÊÖ¤¹¡£
-¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤òÊÖ¤·¡¢
-.I errno
-¤òŬÀÚ¤ËÀßÄꤹ¤ë¡£
-.SH ¥¨¥é¡¼
-.TP
-.B EFAULT
-»ØÄꤵ¤ì¤¿¥á¥â¥êÈÖÃϤ¬ÉÔÀµ¤Ç¤¢¤ë¡£
-.TP
-.B EINVAL
-¥·¥¹¥Æ¥à¾å¤Ë¸½ºß¼ÂºÝ¤Ë¸ºß¤·¡¢¤«¤Ä
-"cpuset" µ¡¹½¤¬²Ý¤¹À©¸Â¤Ë¤ª¤¤¤Æ¤½¤Î¥×¥í¥»¥¹¤ËÂФ·¤Æµö²Ä¤µ¤ì¤Æ¤¤¤ë
-¥×¥í¥»¥Ã¥µ¤¬¡¢
-affinity ¥Ó¥Ã¥È¥Þ¥¹¥¯
-.I mask
-¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Ê¤¤¡£
-"cpuset" µ¡¹½¤Ë¤Ä¤¤¤Æ¤Ï
-.BR cpuset (7)
-¤ò»²¾È¡£
-.TP
-.B EINVAL
-.RB ( sched_getaffinity ()
-¤È¡¢¥«¡¼¥Í¥ë 2.6.9 °ÊÁ°¤Î
-.BR sched_setaffinity ())
-.I cpusetsize
-¤¬¥«¡¼¥Í¥ë¤Ç»È¤ï¤ì¤Æ¤¤¤ë affinity ¥Þ¥¹¥¯¤Î¥µ¥¤¥º¤è¤ê¾®¤µ¤¤¡£
-.TP
-.B EPERM
-.RB ( sched_setaffinity ())
-¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤ËŬÀÚ¤ÊÆø¢¤¬¤Ê¤«¤Ã¤¿¡£
-¸Æ¤Ó½Ð¤·¸µ¤Ï¡¢¼Â¸ú¥æ¡¼¥¶ ID ¤¬
-.I pid
-¤Ç¼±Ê̤µ¤ì¤ë¥×¥í¥»¥¹¤Î¥æ¡¼¥¶ ID ¤Þ¤¿¤Ï¼Â¸ú¥æ¡¼¥¶ ID ¤ÈƱ¤¸¤Ç¤¢¤ë¤«¡¢
-.B CAP_SYS_NICE
-¥±¡¼¥Ñ¥Ó¥ê¥Æ¥£ (capability) ¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-.TP
-.B ESRCH
-¥×¥í¥»¥¹ ID \fIpid\fP ¤Î¥×¥í¥»¥¹¤¬¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¡£
-.SH ¥Ð¡¼¥¸¥ç¥ó
-CPU affinity ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux kernel 2.5.8 ¤ÇƳÆþ¤µ¤ì¤¿¡£
-¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¥é¥Ã¥Ñ¡¼´Ø¿ô¤Ï glibc 2.3 ¤ÇƳÆþ¤µ¤ì¤¿¡£
-ºÇ½é¤Ï¡¢glibc ¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤Ï
-.I "unsigned int"
-·¿¤Î
-.I cpusetsize
-°ú¤¿ô¤¬Æþ¤Ã¤Æ¤¤¤¿¡£
-glibc 2.3.3 ¤Ç¤Ï
-.I cpusetsize
-°ú¤¿ô¤¬ºï½ü¤µ¤ì¤¿¤¬¡¢glibc 2.3.4 ¤Ç
-.I size_t
-·¿¤ÇÉü³è¤·¤¿¡£
-.SH ½àµò
-¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï Linux ¸ÇͤǤ¢¤ë¡£
-.SH Ãí°Õ
-.BR sched_setaffinity ()
-¤ò¸Æ¤Ó½Ð¤·¤¿¸å¤Ï¡¢¥×¥í¥»¥¹¤¬¼ÂºÝ¤Ë¼Â¹Ô¤µ¤ì¤ë CPU ¤Î½¸¹ç¤Ï¡¢
-.I mask
-°ú¤¿ô¤Ç»ØÄꤵ¤ì¤¿½¸¹ç¤È¡¢¥·¥¹¥Æ¥à¾å¤Ë¼ÂºÝ¤Ë¸ºß¤¹¤ë CPU ¤Î½¸¹ç¤Î
-¶¦Ä̽¸¹ç (AND) ¤È¤Ê¤ë¡£
-"cpuset" µ¡¹½¤¬»ÈÍѤµ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¥×¥í¥»¥¹¤¬Æ°ºî¤¹¤ë CPU ½¸¹ç
-¤ËÂФ·¤Æ¥·¥¹¥Æ¥à¤Ï¤µ¤é¤ËÀ©¸Â¤ò²Ã¤¨¤ë¤«¤â¤·¤ì¤Ê¤¤
-("cpuset" µ¡¹½¤Ë¤Ä¤¤¤Æ¤Ï
-.BR cpuset (7)
-¤ò»²¾È)¡£
-¥×¥í¥»¥¹¤¬Æ°ºî¤¹¤ë¼ÂºÝ¤Î CPU ½¸¹ç¤ËÂФ¹¤ëÀ©¸Â¤Ï¥«¡¼¥Í¥ë¤Ë¤è¤ê
-°ÅÌۤΤ¦¤Á¤ËŬÍѤµ¤ì¤ë¡£
+\fBsched_getaffinity\fP() は、 プロセスID が \fIpid\fP のプロセスの affinity マスクを \fImask\fP が指す
+\fIcpu_set_t\fP 構造体に書き込む。 \fIcpusetsize\fP 引き数には \fImask\fP の (バイト単位の) 大きさを指定する。
+.SH 返り値
+成功した場合、 \fBsched_setaffinity\fP() と \fBsched_getaffinity\fP() は 0 を返す。 エラーの場合は
+\-1 を返し、 \fIerrno\fP を適切に設定する。
+.SH エラー
+.TP
+\fBEFAULT\fP
+指定されたメモリ番地が不正である。
+.TP
+\fBEINVAL\fP
+システム上に現在実際に存在し、かつ "cpuset" 機構が課す制限においてそのプロセスに対して許可されている プロセッサが、 affinity
+ビットマスク \fImask\fP に含まれていない。 "cpuset" 機構については \fBcpuset\fP(7) を参照。
+.TP
+\fBEINVAL\fP
+(\fBsched_getaffinity\fP() と、カーネル 2.6.9 以前の \fBsched_setaffinity\fP())
+\fIcpusetsize\fP がカーネルで使われている affinity マスクのサイズより小さい。
+.TP
+\fBEPERM\fP
+(\fBsched_setaffinity\fP()) 呼び出し元のプロセスに適切な特権がなかった。 呼び出し元は、実効ユーザ ID が \fIpid\fP
+で識別されるプロセスの実ユーザ ID または実効ユーザ ID と同じであるか、 \fBCAP_SYS_NICE\fP ケーパビリティ (capability)
+を持たなければならない。
+.TP
+\fBESRCH\fP
+プロセス ID \fIpid\fP のプロセスが見つからなかった。
+.SH バージョン
+CPU affinity システムコールは Linux kernel 2.5.8 で導入された。 これらのシステムコールのラッパー関数は glibc
+2.3 で導入された。 最初は、glibc のインタフェースには \fIunsigned int\fP 型の \fIcpusetsize\fP 引き数が入っていた。
+glibc 2.3.3 では \fIcpusetsize\fP 引き数が削除されたが、glibc 2.3.4 で \fIsize_t\fP 型で復活した。
+.SH 準拠
+これらのシステムコールは Linux 固有である。
+.SH 注意
+\fBsched_setaffinity\fP() を呼び出した後は、プロセスが実際に実行される CPU の集合は、 \fImask\fP
+引き数で指定された集合と、システム上に実際に存在する CPU の集合の 共通集合 (AND) となる。 "cpuset"
+機構が使用されている場合には、プロセスが動作する CPU 集合 に対してシステムはさらに制限を加えるかもしれない ("cpuset" 機構については
+\fBcpuset\fP(7) を参照)。 プロセスが動作する実際の CPU 集合に対する制限はカーネルにより 暗黙のうちに適用される。