| Main index | Section 3 | Options |
#include <pthread_np.h>
Masks of type cpuset_t are composed using the CPU_SET macros. If the user-supplied mask is not large enough to fit all of the matching CPUs, pthread_attr_getaffinity_np() fails with ERANGE. Calls to pthread_attr_setaffinity_np() tolerate masks of any size with no restrictions. pthread_attr_setaffinity_np() uses the meaningful part of the mask, where the upper bound is the maximum CPU id present in the system. If bits for non-existing CPUs are set, calls to pthread_attr_setaffinity_np() fail with EINVAL.
The supplied mask should have a size of cpusetsize bytes. This size is usually provided by calling sizeof(cpuset_t) which is ultimately determined by the value of CPU_SETSIZE as defined in <sys/cpuset.h>.
pthread_attr_getaffinity_np() retrieves the mask from the thread attribute object specified by pattr, and stores it in the space provided by cpusetp.
pthread_attr_setaffinity_np() sets the mask for the thread attribute object specified by pattr to the value in cpusetp.
| [EINVAL] | |
| The pattr or the attribute specified by it is NULL. | |
| [ERANGE] | |
| The cpusetsize is too small. | |
The pthread_attr_setaffinity_np() function will fail if:
| [EINVAL] | |
| The pattr or the attribute specified by it is NULL. | |
| [EINVAL] | |
| The cpusetp specified a CPU that was outside the set supported by the kernel. | |
| [ENOMEM] | |
| Insufficient memory exists to store the cpuset mask. | |
| PTHREAD_ATTR_AFFINITY_NP (3) | January 29, 2023 |
| Main index | Section 3 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
| “ | There are two major products of Berkeley, CA -- LSD and UNIX. We don't believe this to be strictly by coincidence. | ” |
| — Jeremy S. Anderson | ||