Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       pthread_attr_setstack,  pthread_attr_getstack  -  Définir ou obtenir les attributs de pile
       d'un objet d'attributs de thread

SYNOPSIS

       #include <pthread.h>

       int pthread_attr_setstack(pthread_attr_t *attr,
                                 void *stackaddr, size_t stacksize);
       int pthread_attr_getstack(pthread_attr_t *attr,
                                 void **stackaddr, size_t *stacksize);

       Compilez et effectuez l'édition des liens avec l'option -pthread.

   Exigences   de   macros   de   test   de   fonctionnalités   pour    la    glibc    (consultez
   feature_test_macros(7)) :

       pthread_attr_getstack(), pthread_attr_setstack() :
           _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600

DESCRIPTION

       La fonction pthread_attr_setstack() définit l'adresse et la taille de la pile dans l'objet
       d'attributs de thread auquel attr fait référence,  à  partir  des  valeurs  indiquées  par
       stackaddr et stacksize respectivement. Ces attributs indique l'emplacement et la taille de
       la pile qui doit être utilisée par un thread qui est créé en utilisant attr.

       stackaddr devrait pointer vers l'octet adressable d'adresse la plus basse d'un  tampon  de
       stacksize  octets,  alloué  par  l'appelant.  Les  pages  du  tampon alloué devraient être
       accessibles en lecture et écriture.

       La fonction pthread_attr_getstack() renvoie, respectivement dans les  tampons  pointé  par
       stackaddr et stacksize, l'adresse et la taille de la pile d'un objet d'attributs de thread
       auquel attr fait référence.

VALEUR RENVOYÉE

       En cas de réussite, ces fonctions renvoient 0 ; en cas d'erreur elles renvoient un  numéro
       d'erreur non nul.

ERREURS

       pthread_attr_setstack() peut échouer avec les erreurs suivantes :

       EINVAL stacksize  est inférieur à PTHREAD_STACK_MIN (16384) octets. Sur certains systèmes,
              cette erreur peut également se produire si stackaddr ou stackaddr + stacksize n'est
              pas aligné correctement.

       POSIX.1-2001  documente  également  une  erreur  EACCES  si  la  zone  de pile décrite par
       stackaddr et stacksize n'est pas accessible en lecture ou écriture par l'appelant.

VERSIONS

       Ces fonctions sont fournies par la glibc depuis la version 2.1.

CONFORMITÉ

       POSIX.1-2001.

NOTES

       Ces fonctions sont fournies pour les applications qui doivent assurer  que  la  pile  d'un
       thread  se trouve à un emplacement particulier. Pour la plupart des applications, ce n'est
       pas nécessaire,  et  l'utilisation  de  cette  fonction  devrait  être  évitée.  (Utilisez
       pthread_attr_setstacksize(3)  si  une  application  a  juste  besoin  d'une pile de taille
       différente de la taille par défaut.)

       Quand une  application  utilise  pthread_attr_setstack(),  elle  prend  la  responsabilité
       d'allouer   la   pile.   Si   une   taille   de   garde   a   été   définie  en  utilisant
       pthread_attr_setguardsize(3), elle est ignorée. Si  c'est  nécessaire,  l'application  est
       responsable  de  l'allocation  d'une  zone  de  protection  (une page ou plus protégées en
       lecture et écriture) pour prendre en charge la possibilité d'un débordement de pile.

       L'adresse  indiquée  par  stackaddr  devrait  être   alignée   correctement :   pour   une
       compatibilité  complète, il faut l'aligner sur une limite de page (sysconf(_SC_PAGESIZE)).
       posix_memalign(3) peut être utile pour l'allocation. stacksize devrait probablement  aussi
       être un multiple de la taille des pages système.

       Si attr est utilisé pour créer plusieurs threads, alors l'appelant doit changer l'attribut
       de l'adresse de la pile entre les appels à pthread_create(3) ;  sinon,  les  threads  vont
       chercher  à  utiliser la même zone mémoire pour leurs piles, ce qui ne pourra que créer du
       chaos.

EXEMPLE

       Consultez pthread_attr_init(3).

VOIR AUSSI

       mmap(2), mprotect(2), posix_memalign(3), pthread_attr_init(3),
       pthread_attr_setguardsize(3), pthread_attr_setstackaddr(3), pthread_attr_setstacksize(3),
       pthread_create(3), pthreads(7)

COLOPHON

       Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies peuvent être trouvées à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Nicolas François et l'équipe francophone de traduction de Debian (2006-2009).

       Veuillez signaler toute erreur de traduction en écrivant à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le paquet
       manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».