pthread_attr_setstack(3) Library Functions Manual pthread_attr_setstack(3) NUME pthread_attr_setstack, pthread_attr_getstack - stabilete/obine atributele stivei in obiectul de atribute ale firului de execuie BIBLIOTECA Biblioteca de fire de execuie POSIX (libpthread, -lpthread) SINOPSIS #include 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); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): pthread_attr_getstack(), pthread_attr_setstack(): _POSIX_C_SOURCE >= 200112L DESCRIERE Funcia pthread_attr_attr_setstack() stabilete atributele adresa stivei i dimensiunea stivei ale obiectului de atribute ale firului de execuie la care face referire attr la valorile specificate in stackaddr i, respectiv, stacksize. Aceste atribute specifica locaia i dimensiunea stivei care ar trebui sa fie utilizate de un fir care este creat cu ajutorul obiectului de atribute ale firului attr. stackaddr trebuie sa indice cel mai mic octet adresabil dintr-o memorie tampon de stacksize octei care a fost alocata de catre apelant. Paginile din memoria tampon alocata trebuie sa poata fi atat citite, cat i scrise. Funcia pthread_attr_getstack() returneaza atributele de adresa de stiva i de dimensiune a stivei ale obiectului de atribute ale firului de execuie la care se face referire prin attr in memoriile tampon indicate de stackaddr i, respectiv, stacksize. VALOAREA RETURNATA In caz de succes, aceste funcii returneaza 0; in caz de eroare, ele returneaza un numar de eroare diferit de zero. ERORI-IEIRE pthread_attr_setstack() poate eua cu urmatoarea eroare: EINVAL stacksize este mai mica decat PTHREAD_STACK_MIN (16384) bytes. Pe unele sisteme, aceasta eroare poate aparea, de asemenea, daca stackaddr sau stackaddr + stacksize nu este aliniata in mod corespunzator. POSIX.1 documenteaza, de asemenea, o eroare EACCES in cazul in care zona de stiva descrisa de stackaddr i stacksize nu poate fi atat citita, cat i scrisa de catre apelant. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +--------------------------------------+---------------------+---------+ |Interfaa | Atribut | Valoare | +--------------------------------------+---------------------+---------+ |pthread_attr_setstack(), | Sigurana firelor | MT-Safe | |pthread_attr_getstack() | | | +--------------------------------------+---------------------+---------+ STANDARDE POSIX.1-2008. ISTORIC glibc 2.2. POSIX.1-2001. NOTE Aceste funcii sunt furnizate pentru aplicaiile care trebuie sa se asigure ca stiva unui fir de execuie este plasata intr-o anumita locaie. Pentru majoritatea aplicaiilor, acest lucru nu este necesar, iar utilizarea acestor funcii ar trebui evitata (utilizai pthread_attr_setstacksize(3) daca o aplicaie necesita pur i simplu o dimensiune a stivei diferita de cea implicita). Atunci cand o aplicaie utilizeaza pthread_attr_setstack(), aceasta preia responsabilitatea alocarii stivei. Orice valoare a marimii de garda care a fost stabilita cu ajutorul pthread_attr_setguardsize(3) este ignorata. In cazul in care se considera necesar, este responsabilitatea aplicaiei sa aloce o zona de garda (una sau mai multe pagini protejate impotriva citirii i scrierii) pentru a gestiona posibilitatea de depaire a stivei. Adresa specificata in stackaddr ar trebui sa fie aliniata in mod corespunzator: pentru o portabilitate completa, aliniai-o pe o limita de pagina (sysconf(_SC_PAGESIZE)). posix_memalign(3) poate fi utila pentru alocare. Probabil, stacksize ar trebui sa fie, de asemenea, un multiplu al dimensiunii paginii de sistem. Daca attr este utilizat pentru a crea mai multe fire de execuie, atunci apelantul trebuie sa schimbe atributul adresei stivei intre apelurile la pthread_create(3); in caz contrar, firele de execuie vor incerca sa utilizeze aceeai zona de memorie pentru stivele lor, ceea ce va duce la haos. EXEMPLE A se vedea pthread_attr_init(3). CONSULTAI 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 in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.9.1 2 mai 2024 pthread_attr_setstack(3)