PTHREAD_ATTR_SETAFFINITY_NP(3)

NOM
pthread_attr_setaffinity_np, pthread_attr_getaffinity_np - Définir ou obtenir l'attribut d'affinité CPU d'un objet d'attributs de thread

SYNOPSIS
#define _GNU_SOURCE             /* Consultez 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);

Compiler et éditer les liens avec -pthreads.

DESCRIPTION
La fonction pthread_attr_setaffinity_np() définit l'attribut du masque d'affinité CPU de l'objet d'attributs de thread auquel attr fait référence à la valeur indiquée par cpuset. Cet attribut détermine le masque d'affinité CPU d'un thread créé en utilisant l'objet d'attributs de thread attr.

La fonction pthread_attr_getaffinity_np() renvoie, dans le tampon pointé par cpuset, l'attribut du masque d'affinité CPU de l'objet d'attributs de thread auquel attr fait référence.

Le paramètre cpusetsize est la longueur (en octets) du tampon pointé par cpuset. Typiquement, ce paramètre sera sizeof (cpu_set_t).

Pour plus de détails sur les masques d'affinité CPU, consultez sched_setaffinity(2). Pour une description d'un jeu de macros qui peuvent être utilisées pour manipuler et inspecter des ensembles de CPU, consultez CPU_SET(3).

VALEUR RENVOYÉE
En cas de succès, ces fonctions renvoient 0 ; en cas d'erreur, elles renvoient un code d'erreur non nul.

ERREURS

EINVAL
    (pthread_attr_setaffinity_np()) Le cpuset indiquait un CPU en dehors de l'ensemble pris en charge par le noyau (l'option de configuration CONFIG_NR_CPUS du noyau définit l'intervalle de l'ensemble pris en charge par le type de données du noyau pour représenter les ensembles de CPU).

EINVAL
    (pthread_attr_getaffinity_np()) Un CPU du masque d'affinité de l'objet d'attributs de thread auquel attr fait référence réside en dehors de l'intervalle indiqué par cpusetsize (c'est-à-dire, cpuset/cpusetsize est trop petit).

ENOMEM
    (pthread_attr_setaffinity_np()) Impossible d'allouer de la mémoire.

VERSIONS
Ces fonctions sont fournies par la glibc depuis la version 2.3.4.

ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter attributes(7).
Interface | Attribut | Valeur
pthread_attr_setaffinity_np(), pthread_attr_getaffinity_np() | Sécurité des threads | MT-Safe

CONFORMITÉ
Ces fonctions sont des extensions GNU non standard ; d'où le suffixe « _np » (non portable) dans leur nom.

NOTES
Dans la glibc 2.3.3, uniquement, les versions de ces fonctions n'avaient pas de paramètre cpusetsize. À la place, la taille de l'ensemble de CPU fourni à l'appel système sous-jacent était toujours sizeof(cpu_set_t).

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

COLOPHON
Cette page fait partie de la publication 5.13 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Frédéric Hantrais <fhantrais@gmail.com> Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.