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

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țăAtributValoare │
       ├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │ 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)