.\" -*- coding: UTF-8 -*- .\" Copyright (c) 2008 Linux Foundation, written by Michael Kerrisk .\" .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH PTHREAD_ATTR_SETGUARDSIZE 3 "9 juin 2020" Linux "Manuel du programmeur Linux" .SH NOM pthread_attr_setguardsize, pthread_attr_getguardsize \- Définir ou obtenir la taille de garde d'un objet d'attributs de thread .SH SYNOPSIS .nf \fB#include \fP .PP \fBint pthread_attr_setguardsize(pthread_attr_t *\fP\fIattr\fP\fB, size_t \fP\fIguardsize\fP\fB);\fP \fBint pthread_attr_getguardsize(const pthread_attr_t *\fP\fIattr\fP\fB,\fP \fB size_t *\fP\fIguardsize\fP\fB);\fP .PP Compiler et éditer les liens avec \fI\-pthreads\fP. .fi .SH DESCRIPTION La fonction \fBpthread_attr_setguardsize\fP() définit l'attribut de taille de garde de l'objet d'attributs de thread auquel \fIthread\fP fait référence à la valeur indiquée par \fIguardsize\fP. .PP Si \fIguardsize\fP est positif, alors, pour chaque thread créé avec \fIattr\fP, le système alloue une région supplémentaire d'au moins \fIguardsize\fP octets à la fin de la pile du thread afin de servir de zone de protection pour la pile (voir la section BOGUES). .PP Si \fIguardsize\fP est nul, les nouveaux threads créés avec \fIattr\fP n'auront pas de zone de protection. .PP La taille de garde par défaut est la taille d'une page système. .PP Si l'adresse de la pile a été définie dans \fIattr\fP (en utilisant \fBpthread_attr_setstack\fP(3) ou \fBpthread_attr_setstackaddr\fP(3)), ce qui signifie que l'appelant alloue la pile du thread, alors l'attribut contenant 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'application de prendre en charge les débordements de pile (peut\-être en utilisant \fBmprotect\fP(2) pour définir manuellement une zone de protection à la fin de la pile qui a été allouée). .PP La fonction \fBpthread_attr_getguardsize\fP() renvoie, dans le tampon pointé par \fIguardsize\fP, l'attribut contenant la taille de garde de l'objet d'attributs de thread auquel \fIattr\fP fait référence. .SH "VALEUR RENVOYÉE" En cas de succès, ces fonctions renvoient \fB0\fP\ ; en cas d'erreur, elles renvoient un code d'erreur non nul. .SH ERREURS POSIX.1 documents an \fBEINVAL\fP error if \fIattr\fP or \fIguardsize\fP is invalid. On Linux these functions always succeed (but portable and future\-proof applications should nevertheless handle a possible error return). .SH VERSIONS Ces fonctions sont fournies par la glibc depuis la version\ 2.1. .SH ATTRIBUTS Pour une explication des termes utilisés dans cette section, consulter \fBattributes\fP(7). .TS allbox; lbw28 lb lb l l l. Interface Attribut Valeur T{ \fBpthread_attr_setguardsize\fP(), \fBpthread_attr_getguardsize\fP() T} Sécurité des threads MT\-Safe .TE .SH CONFORMITÉ POSIX.1\-2001, POSIX.1\-2008. .SH 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 \fBSIGSEGV\fP, 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 (cependant, \fBpthread_attr_getguardsize\fP() renvoie la taille de garde qui a été définie par \fBpthread_attr_setguardsize\fP()). .PP 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. .PP 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. .SH 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'allouer de l'espace supplémentaire à la fin de la pile, comme exigé par POSIX.1 (ceci peut causer une erreur \fBEINVAL\fP lors de \fBpthread_create\fP(3) si la taille de garde est trop importante, ne laissant en fait pas de place à la pile). .PP .\" glibc includes the guardsize within the allocated stack size, .\" which looks pretty clearly to be in violation of POSIX. .\" .\" Filed bug, 22 Oct 2008: .\" http://sources.redhat.com/bugzilla/show_bug.cgi?id=6973 .\" .\" Older reports: .\" https//bugzilla.redhat.com/show_bug.cgi?id=435337 .\" Reportedly, LinuxThreads did the right thing, allocating .\" extra space at the end of the stack: .\" http://sourceware.org/ml/libc-alpha/2008-05/msg00086.html L'implémentation obsolète LinuxThreads faisait ce qu'il fallait, en allouant de l'espace supplémentaire à la fin de la pile pour la zone de protection. .SH EXEMPLES Consultez \fBpthread_getattr_np\fP(3). .SH "VOIR AUSSI" \fBmmap\fP(2), \fBmprotect\fP(2), \fBpthread_attr_init\fP(3), \fBpthread_attr_setstack\fP(3), \fBpthread_attr_setstacksize\fP(3), \fBpthread_create\fP(3), \fBpthreads\fP(7) .SH COLOPHON Cette page fait partie de la publication\ 5.10 du projet \fIman\-pages\fP 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/. .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Frédéric Hantrais . Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE 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 à .MT debian-l10n-french@lists.debian.org .ME .