Man page - pthread_attr_getstack(3)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

pthread_attr_setstack

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
ATTRIBUTS
STANDARDS
HISTORIQUE
NOTES
EXEMPLES
VOIR AUSSI
TRADUCTION

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).

Image grohtml-3866290-1.png

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 .