Provided by: manpages-fr-dev_4.26.0-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 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.9.1                     2 mai 2024                           pthread_attr_setstack(3)