Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

NOM

       pthread_attr_setguardsize,   pthread_attr_getguardsize   -  Definir  ou
       obtenir la taille de garde d'un objet d'attributs de thread

SYNOPSIS

       #include <pthread.h>

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

       Compilez et effectuez l'edition des liens avec l'option -pthread.

DESCRIPTION

       La fonction pthread_attr_setguardsize() definit l'attribut de taille de
       garde  de  l'objet d'attributs de thread auquel thread fait reference a
       la valeur indiquee par guardsize.

       Si guardsize est positif, alors, pour chaque thread cree avec attr,  le
       systeme  alloue une region supplementaire d'au moins guardsize octets a
       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 crees avec attr n'auront pas
       de zone de protection.

       La taille de garde par defaut est la taille d'une page systeme.

       Si l'adresse  de  la  pile  a  ete  definie  dans  attr  (en  utilisant
       pthread_attr_setstack(3)   ou   pthread_attr_setstackaddr(3)),  ce  qui
       signifie que l'appelant alloue la  pile  du  thread,  alors  l'attribut
       contenant  la  taille de garde est ignore (c'est-a-dire, aucune zone de
       garde n'est creee par le systeme) : il  est  de  la  responsabilite  de
       l'application  de prendre en charge les debordements de pile (peut-etre
       en  utilisant  mprotect(2)  pour  definir  manuellement  une  zone   de
       protection a la fin de la pile qui a ete allouee).

       La  fonction pthread_attr_getguardsize() renvoie, dans le tampon pointe
       par guardsize, l'attribut contenant  la  taille  de  garde  de  l'objet
       d'attributs de thread auquel attr fait reference.

VALEUR RENVOY'EE

       En  cas  de reussite, ces fonctions renvoient 0 ; en cas d'erreur elles
       renvoient un numero d'erreur non nul.

ERREURS

       POSIX.1-2001 documente une erreur EINVAL si attr ou guardsize n'est pas
       valable.  Sous  Linux,  ces  fonctions  reussissent  toujours (mais les
       applications portables et a  l'epreuve  du  temps  devraient  neanmoins
       prendre en charge une possible valeur de retour).

VERSIONS

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

CONFORMIT'E

       POSIX.1-2001.

NOTES

       Une  zone de garde consiste en des pages de memoire virtuelles qui sont
       protegees pour empecher des acces en lecture ou ecriture.  Si  la  pile
       d'un  thread  deborde dans la zone de garde, alors, pour la plupart des
       architectures materielles, il recoit  un  signal  SIGSEGV,  ce  qui  le
       previent  du  debordement.  Les  zones  de protection demarrent sur des
       limites de pages, et la taille de garde  est  arrondie  en  interne  au
       multiple  de taille de pages systeme superieur lors de la creation d'un
       thread (cependant, pthread_attr_getguardsize()  renvoie  la  taille  de
       garde qui a ete definie par pthread_attr_setguardsize()).

       Definir  une taille de garde de 0 peut etre utile pour economiser de la
       memoire dans une application qui cree beaucoup de thread et sait  qu'il
       n'y aura jamais de debordement de la pile.

       Choisir une taille de garde superieure a la taille par defaut peut etre
       necessaire pour detecter des debordements de pile si un  thread  alloue
       des structures de donnees importantes sur la pile.

BOGUES

       Au  moment  de la glibc 2.8, l'implementation des threads NPTL place la
       zone de protection dans  la  taille  allouee  a  la  pile,  plutot  que
       d'allouer  de  l'espace supplementaire a la fin de la pile, comme exige
       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 a la pile).

       L'implementation obsolete LinuxThreads faisait  ce  qu'il  fallait,  en
       allouant de l'espace supplementaire a la fin de la pile pour la zone de
       protection.

EXEMPLE

       Consultez pthread_getattr_np(3).

VOIR AUSSI

       mmap(2),    mprotect(2),    pthread_attr_init(3),    pthread_create(3),
       pthread_attr_setstack(3), pthread_attr_setstacksize(3), pthreads(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.27 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       etre       trouvees      a      l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis 2010, cette traduction est maintenue a l'aide  de  l'outil  po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone       au       sein        du        projet        perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Nicolas   Francois   et   l'equipe   francophone   de   traduction   de
       Debian (2006-2009).

       Veuillez  signaler  toute  erreur   de   traduction   en   ecrivant   a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.