pthread_attr_setstack(3) Library Functions Manual pthread_attr_setstack(3) NOM pthread_attr_setstack, pthread_attr_getstack -- Definir ou obtenir les attributs de pile d'un objet d'attributs de thread BIBLIOTHEQUE Bibliotheque de threads POSIX (libpthread, -lpthread) SYNOPSIS #include 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 fonctionnalites pour la glibc (consulter feature_test_macros(7)) : pthread_attr_getstack(), pthread_attr_setstack() : _POSIX_C_SOURCE >= 200112L DESCRIPTION La fonction pthread_attr_setstack() definit les attributs adresse et taille de la pile dans l'objet d'attributs de thread auquel attr fait reference, aux valeurs indiquees par adresse_pile et taille_pile respectivement. Ces attributs indiquent l'emplacement et la taille de la pile qui doivent etre utilises par un thread qui est cree 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, alloue par l'appelant. Les pages du tampon alloue devraient etre accessibles en lecture et ecriture. La fonction pthread_attr_getstack() renvoie, respectivement dans les tampons pointes 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 reference. VALEUR RENVOYEE En cas de succes, ces fonctions renvoient 0 ; en cas d'erreur, elles renvoient un code d'erreur non nul. ERREURS pthread_attr_setstack() peut echouer avec les erreurs suivantes : EINVAL taille_pile est inferieure a PTHREAD_STACK_MIN (16384) octets. Sur certains systemes, cette erreur peut egalement se produire si adresse_pile ou adresse_pile + taille_pile ne sont pas alignees correctement. POSIX.1 documente egalement une erreur EACCES si la zone de pile decrite par adresse_pile et taille_pile n'est pas accessible en lecture ou ecriture par l'appelant. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |pthread_attr_setstack(), | Securite des threads | MT-Safe | |pthread_attr_getstack() | | | +---------------------------------+--------------------------+---------+ 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 a un emplacement particulier. Pour la plupart des applications, ce n'est pas necessaire, et l'utilisation de ces fonctions devrait etre evitee. (Utilisez pthread_attr_setstacksize(3) si une application a juste besoin d'une pile de taille differente de la taille par defaut.) Quand une application utilise pthread_attr_setstack(), elle prend la responsabilite d'allouer la pile. Si une taille de garde a ete definie en utilisant pthread_attr_setguardsize(3), elle est ignoree. Si c'est necessaire, l'application est responsable de l'allocation d'une zone de garde (une page ou plus protegees en lecture et ecriture) pour prendre en charge la possibilite d'un debordement de pile. L'adresse indiquee par adresse_pile devrait etre alignee correctement : pour une compatibilite complete, il faut l'aligner sur une limite de page (sysconf(_SC_PAGESIZE)). posix_memalign(3) peut etre utile pour l'allocation. taille_pile devrait probablement aussi etre un multiple de la taille des pages systeme. Si attr est utilise pour creer plusieurs threads, alors l'appelant doit changer l'attribut de l'adresse de la pile entre les appels a pthread_create(3) ; sinon, les threads vont chercher a utiliser la meme zone memoire pour leurs piles, ce qui ne pourra que creer 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 francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot , Frederic Hantrais et Jean- Pierre Giraud Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 pthread_attr_setstack(3)