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> ».

Linux                                            24 octobre 2008                        PTHREAD_ATTR_SETSTACK(3)