Provided by: manpages-fr-dev_4.13-4_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(const pthread_attr_t *attr,
                                 void **stackaddr, size_t *stacksize);

       Compiler et éditer les liens avec -pthreads.

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

       pthread_attr_getstack(), pthread_attr_setstack() :
           _POSIX_C_SOURCE >= 200112L

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 succès, ces fonctions renvoient 0 ; en cas d'erreur,  elles  renvoient  un  code
       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  also  documents  an  EACCES  error  if  the stack area described by stackaddr and
       stacksize is not both readable and writable by the caller.

VERSIONS

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

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌─────────────────────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├─────────────────────────┼──────────────────────┼─────────┤
       │pthread_attr_setstack(), │ Sécurité des threads │ MT-Safe │
       │pthread_attr_getstack()  │                      │         │
       └─────────────────────────┴──────────────────────┴─────────┘

CONFORMITÉ

       POSIX.1-2001, POSIX.1-2008.

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.

EXEMPLES

       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 5.10 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 ⟨⟩.