Provided by: manpages-fr-dev_4.21.0-2_all bug

NOM

       pthread_attr_setaffinity_np,  pthread_attr_getaffinity_np  – Définir ou obtenir les attributs de création
       de thread

BIBLIOTHÈQUE

       Bibliothèque de threads POSIX (libpthread, -lpthread)

SYNOPSIS

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

       int pthread_getattr_default_np(pthread_attr_t *attr);
       int pthread_setattr_default_np(const pthread_attr_t *attr);

DESCRIPTION

       La fonction pthread_setattr_default_np() règle les attributs par défaut qui sont utilisés pour  créer  un
       nouveau  thread — c'est-à-dire les attributs qui sont utilisés quand pthread_create(3) est appelé avec un
       second attribut de valeur NULL. Les attributs par défaut sont  réglés  avec  les  attributs  fournis  par
       *attr,  un  objet  d'attributs  de  thread initialisé auparavant. Veuillez noter les détails suivants sur
       l'objet d'attributs fourni :

       -  Les réglages d'attributs dans l'objet doivent être valables.

       -  L'attribut adresse de pile ne doit pas être défini dans l'objet.

       -  Régler l'attribut taille de pile à zéro signifie laisser inchangée la taille de pile par défaut.

       La fonction pthread_getattr_default_np() initialise  l'objet  d'attributs  de  thread  auquel  attr  fait
       référence de telle sorte qu'il contienne les valeurs d'attributs par défaut utilisées pour la création du
       thread.

ERREURS

       EINVAL (pthread_setattr_default_np())  Un  des  réglages  d'attribut  dans  attr  n'est  pas  valable  ou
              l'attribut adresse de pile est défini dans attr.

       ENOMEM (pthread_setattr_default_np()) Il n'y a pas assez de mémoire.

VERSIONS

       Ces fonctions sont disponibles depuis la glibc 2.18.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).
       ┌──────────────────────────────────────────────────────────────────────┬──────────────────────┬─────────┐
       │ InterfaceAttributValeur  │
       ├──────────────────────────────────────────────────────────────────────┼──────────────────────┼─────────┤
       │ pthread_getattr_default_np(), pthread_setattr_default_np()           │ Sécurité des threads │ MT-Safe │
       └──────────────────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS

       Ces fonctions sont des extensions non standard GNU ; c'est la raison du suffixe  « _np »  (non  portable)
       dans leur nom.

EXEMPLES

       Le  programme  ci-dessous utilise pthread_getattr_default_np() pour récupérer les attributs par défaut de
       création de thread, puis affiche divers réglages de l'objet renvoyé d'attributs de thread. Lors de l'exé‐
       cution du programme, la sortie suivante est affichée :

           $ ./a.out
           Stack size:          8388608
           Guard size:          4096
           Scheduling policy:   SCHED_OTHER
           Scheduling priority: 0
           Detach state:        JOINABLE
           Inherit scheduler:   INHERIT

   Source du programme

       #define _GNU_SOURCE
       #include <err.h>
       #include <errno.h>
       #include <pthread.h>
       #include <stdio.h>
       #include <stdlib.h>

       static void
       display_pthread_attr(pthread_attr_t *attr)
       {
           int s;
           size_t stacksize;
           size_t guardsize;
           int policy;
           struct sched_param schedparam;
           int detachstate;
           int inheritsched;

           s = pthread_attr_getstacksize(attr, &stacksize);
           if (s != 0)
               errc(EXIT_FAILURE, s, "pthread_attr_getstacksize");
           printf("Stack size:          %zd\n", stacksize);

           s = pthread_attr_getguardsize(attr, &guardsize);
           if (s != 0)
               errc(EXIT_FAILURE, s, "pthread_attr_getguardsize");
           printf("Guard size:          %zd\n", guardsize);

           s = pthread_attr_getschedpolicy(attr, &policy);
           if (s != 0)
               errc(EXIT_FAILURE, s, "pthread_attr_getschedpolicy");
           printf("Scheduling policy:   %s\n",
                  (policy == SCHED_FIFO) ? "SCHED_FIFO" :
                  (policy == SCHED_RR) ? "SCHED_RR" :
                  (policy == SCHED_OTHER) ? "SCHED_OTHER" : "[unknown]");

           s = pthread_attr_getschedparam(attr, &schedparam);
           if (s != 0)
               errc(EXIT_FAILURE, s, "pthread_attr_getschedparam");
           printf("Scheduling priority: %d\n", schedparam.sched_priority);

           s = pthread_attr_getdetachstate(attr, &detachstate);
           if (s != 0)
               errc(EXIT_FAILURE, s, "pthread_attr_getdetachstate");
           printf("Detach state:        %s\n",
                  (detachstate == PTHREAD_CREATE_DETACHED) ? "DETACHED" :
                  (detachstate == PTHREAD_CREATE_JOINABLE) ? "JOINABLE" :
                  "???");

           s = pthread_attr_getinheritsched(attr, &inheritsched);
           if (s != 0)
               errc(EXIT_FAILURE, s, "pthread_attr_getinheritsched");
           printf("Inherit scheduler:   %s\n",
                  (inheritsched == PTHREAD_INHERIT_SCHED) ? "INHERIT" :
                  (inheritsched == PTHREAD_EXPLICIT_SCHED) ? "EXPLICIT" :
                  "???");
       }

       int
       main(void)
       {
           int s;
           pthread_attr_t attr;

           s = pthread_getattr_default_np(&attr);
           if (s != 0)
               errc(EXIT_FAILURE, s, "pthread_getattr_default_np");

           display_pthread_attr(&attr);

           exit(EXIT_SUCCESS);
       }

VOIR AUSSI

       pthread_attr_getaffinity_np(3), pthread_attr_getdetachstate(3), pthread_attr_getguardsize(3),
       pthread_attr_getinheritsched(3), pthread_attr_getschedparam(3), pthread_attr_getschedpolicy(3),
       pthread_attr_getscope(3), pthread_attr_getstack(3), pthread_attr_getstackaddr(3),
       pthread_attr_getstacksize(3), pthread_attr_init(3), pthread_create(3), pthreads(7)

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>, Frédéric Hantrais <fhantrais@gmail.com> et Jean-Pierre Giraud <jean-
       pierregiraud@neuf.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 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.

Pages du manuel de Linux 6.03                    5 février 2023                    pthread_getattr_default_np(3)