dwww Home | Manual pages | Find package

pthread_attr_setguardsize(3Library Functions Manuapthread_attr_setguardsize(3)

NOM
       pthread_attr_setguardsize, pthread_attr_getguardsize - Définir ou obte-
       nir la taille de garde d'un objet d'attributs de thread

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

SYNOPSIS
       #include <pthread.h>

       int pthread_attr_setguardsize(pthread_attr_t *attr, size_t guardsize);
       int pthread_attr_getguardsize(const pthread_attr_t *restrict attr,
                                     size_t *restrict guardsize);

DESCRIPTION
       La fonction pthread_attr_setguardsize() définit l'attribut de taille de
       garde  de  l'objet d'attributs de thread auquel thread fait référence à
       la valeur indiquée par guardsize.

       Si guardsize est positif, alors, pour chaque thread créé avec attr,  le
       système  alloue une région supplémentaire d'au moins guardsize octets à
       la fin de la pile du thread afin de servir de zone de  protection  pour
       la pile (voir la section BOGUES).

       Si guardsize est nul, les nouveaux threads créés avec attr n'auront pas
       de zone de protection.

       La taille de garde par défaut est la taille d'une page système.

       Si l'adresse  de  la  pile  a  été  définie  dans  attr  (en  utilisant
       pthread_attr_setstack(3)  ou  pthread_attr_setstackaddr(3)), ce qui si-
       gnifie que l'appelant alloue la pile du thread, alors l'attribut conte-
       nant  la taille de garde est ignoré (c'est-à-dire, aucune zone de garde
       n'est créée par le système) : il est de la responsabilité de l'applica-
       tion de prendre en charge les débordements de pile (peut-être en utili-
       sant mprotect(2) pour définir manuellement une zone de protection à  la
       fin de la pile qui a été allouée).

       La  fonction pthread_attr_getguardsize() renvoie, dans le tampon pointé
       par guardsize, l'attribut contenant la taille de garde de l'objet d'at-
       tributs 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
       POSIX.1 documents an EINVAL error if attr or guardsize is  invalid.  On
       Linux these functions always succeed (but portable and future-proof ap-
       plications should nevertheless handle a possible error return).

VERSIONS
       These functions are provided since glibc 2.1.

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

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

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

NOTES
       Une zone de garde consiste en des pages de mémoire virtuelles qui  sont
       protégées  pour  empêcher  des accès en lecture ou écriture. Si la pile
       d'un thread déborde dans la zone de garde, alors, pour la  plupart  des
       architectures  matérielles, il reçoit un signal SIGSEGV, ce qui le pré-
       vient du débordement. Les zones de protection démarrent sur des limites
       de  pages, et la taille de garde est arrondie en interne au multiple de
       taille de pages système supérieur lors de la création d'un thread  (ce-
       pendant,  pthread_attr_getguardsize()  renvoie la taille de garde qui a
       été définie par pthread_attr_setguardsize()).

       Définir une taille de garde de 0 peut être utile pour économiser de  la
       mémoire  dans une application qui crée beaucoup de thread et sait qu'il
       n'y aura jamais de débordement de la pile.

       Choisir une taille de garde supérieure à la taille par défaut peut être
       nécessaire  pour  détecter des débordements de pile si un thread alloue
       des structures de données importantes sur la pile.

BOGUES
       Au moment de la glibc 2.8, l'implémentation des threads NPTL  place  la
       zone  de  protection dans la taille allouée à la pile, plutôt que d'al-
       louer de l'espace supplémentaire à la fin de la pile, comme  exigé  par
       POSIX.1  (ceci  peut causer une erreur EINVAL lors de pthread_create(3)
       si la taille de garde est trop importante, ne laissant en fait  pas  de
       place à la pile).

       L'implémentation obsolète LinuxThreads faisait ce qu'il fallait, en al-
       louant de l'espace supplémentaire à la fin de la pile pour la  zone  de
       protection.

EXEMPLES
       Consultez pthread_getattr_np(3).

VOIR AUSSI
       mmap(2),  mprotect(2),  pthread_attr_init(3), pthread_attr_setstack(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  Chris-
       tophe  Blaess  <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste-
       phan.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.cou-
       lon@wanadoo.fr>,  Julien  Cristau <jcristau@debian.org>, Thomas Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François  <nicolas.francois@centra-
       liens.net>,  Florentin  Duneau <fduneau@gmail.com>, Simon Paillard <si-
       mon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier    <barbier@de-
       bian.org>, David Prévot <david@tilapin.org> et Frédéric Hantrais <fhan-
       trais@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⟩.

Pages du manuel de Linux 6.03  15 décembre 2022   pthread_attr_setguardsize(3)

Generated by dwww version 1.15 on Sat Jun 29 01:40:15 CEST 2024.