Provided by: manpages-ro-dev_4.21.0-2_all 

NUME
pthread_attr_setstack, pthread_attr_getstack - stabilește/obține atributele stivei în obiectul de
atribute ale firului de execuție
BIBLIOTECA
Biblioteca de fire de execuție POSIX (libpthread, -lpthread)
REZUMAT
#include <pthread.h>
int pthread_attr_setstack(pthread_attr_t *attr,
void stackaddr[.stacksize],
size_t stacksize);
int pthread_attr_getstack(const pthread_attr_t *restrict attr,
void **restrict stackaddr,
size_t *restrict stacksize);
Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):
pthread_attr_getstack(), pthread_attr_setstack():
_POSIX_C_SOURCE >= 200112L
DESCRIERE
Funcția pthread_attr_attr_setstack() stabilește atributele adresa stivei și dimensiunea stivei ale
obiectului de atribute ale firului de execuție la care face referire attr la valorile specificate în
stackaddr și, respectiv, stacksize. Aceste atribute specifică locația și dimensiunea stivei care ar
trebui să fie utilizate de un fir care este creat cu ajutorul obiectului de atribute ale firului attr.
stackaddr trebuie să indice cel mai mic octet adresabil dintr-o memorie tampon de stacksize octeți care a
fost alocată de către apelant. Paginile din memoria tampon alocată trebuie să poată fi atât citite, cât
și scrise.
Funcția pthread_attr_getstack() returnează atributele de adresă de stivă și de dimensiune a stivei ale
obiectului de atribute ale firului de execuție la care se face referire prin attr în memoriile tampon
indicate de stackaddr și, respectiv, stacksize.
VALOAREA RETURNATĂ
În caz de succes, aceste funcții returnează 0; în caz de eroare, ele returnează un număr de eroare
diferit de zero.
ERORI
pthread_attr_setstack() poate eșua cu următoarea eroare:
EINVAL stacksize este mai mică decât PTHREAD_STACK_MIN (16384) bytes. Pe unele sisteme, această eroare
poate apărea, de asemenea, dacă stackaddr sau stackaddr + stacksize nu este aliniată în mod
corespunzător.
POSIX.1 documentează, de asemenea, o eroare EACCES în cazul în care zona de stivă descrisă de stackaddr
și stacksize nu poate fi atât citită, cât și scrisă de către apelant.
VERSIUNI
Aceste funcții sunt furnizate începând cu glibc 2.2.
ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
┌─────────────────────────────────────────────────────────────────────────┬───────────────────┬─────────┐
│ Interfață │ Atribut │ Valoare │
├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
│ pthread_attr_setstack(), pthread_attr_getstack() │ Siguranța firelor │ MT-Safe │
└─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘
STANDARDE
POSIX.1-2001, POSIX.1-2008.
NOTE
Aceste funcții sunt furnizate pentru aplicațiile care trebuie să se asigure că stiva unui fir de execuție
este plasată într-o anumită locație. Pentru majoritatea aplicațiilor, acest lucru nu este necesar, iar
utilizarea acestor funcții ar trebui evitată (utilizați pthread_attr_setstacksize(3) dacă o aplicație
necesită pur și simplu o dimensiune a stivei diferită de cea implicită).
Atunci când o aplicație utilizează pthread_attr_setstack(), aceasta preia responsabilitatea alocării
stivei. Orice valoare a mărimii de gardă care a fost stabilită cu ajutorul pthread_attr_setguardsize(3)
este ignorată. În cazul în care se consideră necesar, este responsabilitatea aplicației să aloce o zonă
de gardă (una sau mai multe pagini protejate împotriva citirii și scrierii) pentru a gestiona
posibilitatea de depășire a stivei.
Adresa specificată în stackaddr ar trebui să fie aliniată în mod corespunzător: pentru o portabilitate
completă, aliniați-o pe o limită de pagină (sysconf(_SC_PAGESIZE)). posix_memalign(3) poate fi utilă
pentru alocare. Probabil, stacksize ar trebui să fie, de asemenea, un multiplu al dimensiunii paginii de
sistem.
Dacă attr este utilizat pentru a crea mai multe fire de execuție, atunci apelantul trebuie să schimbe
atributul adresei stivei între apelurile la pthread_create(3); în caz contrar, firele de execuție vor
încerca să utilizeze aceeași zonă de memorie pentru stivele lor, ceea ce va duce la haos.
EXEMPLE
A se vedea pthread_attr_init(3).
CONSULTAȚI ȘI
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)
TRADUCERE
Traducerea în limba română a acestui manual a fost creată de Remus-Gabriel Chelu
<remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o
versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă Nicio
RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
ro@lists.sourceforge.net.
Pagini de manual de Linux 6.03 15 decembrie 2022 pthread_attr_setstack(3)