Provided by: manpages-fr-dev_4.23.1-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

BIBLIOTHÈQUE

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

SYNOPSIS

       #include <pthread.h>

       int pthread_attr_setstack(pthread_attr_t *attr,
                                 void adresse_pile[.taille_pile],
                                 size_t taille_pile);
       int pthread_attr_getstack(const pthread_attr_t *restrict attr,
                                 void **restrict adresse_pile,
                                 size_t *restrict taille_pile);

   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  les attributs adresse et taille de la pile
       dans l'objet d'attributs de thread auquel attr fait référence, aux valeurs  indiquées  par
       adresse_pile  et  taille_pile  respectivement. Ces attributs indiquent l'emplacement et la
       taille de la pile qui doivent être utilisés par  un  thread  qui  est  créé  en  utilisant
       l'objet d'attributs de thread attr.

       adresse_pile  devrait  pointer  vers  l'octet  adressable  le  plus  bas  d'un  tampon  de
       taille_pile 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és par
       adresse_pile et taille_pile, les attributs d'adresse et de taille de la  pile  de  l'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 taille_pile  est  inférieure  à  PTHREAD_STACK_MIN  (16384)  octets.  Sur  certains
              systèmes,   cette   erreur   peut   également   se   produire  si  adresse_pile  ou
              adresse_pile + taille_pile ne sont pas alignées correctement.

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

ATTRIBUTS

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

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

STANDARDS

       POSIX.1-2008.

HISTORIQUE

       glibc 2.2. 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  ces  fonctions  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 garde (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  adresse_pile  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. taille_pile 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)

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