.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 2008 Linux Foundation, written by Michael Kerrisk .\" .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH pthread_attr_setguardsize 3 "20 iulie 2023" "Pagini de manual de Linux 6.05.01" .SH NUME pthread_attr_setguardsize, pthread_attr_getguardsize \- stabilește/obține atributul de dimensiune a gărzii în obiectul atributele firului de execuție .SH BIBLIOTECA Biblioteca de fire de execuție POSIX (\fIlibpthread\fP, \fI\-lpthread\fP) .SH REZUMAT .nf \fB#include \fP .PP \fBint pthread_attr_setguardsize(pthread_attr_t *\fP\fIattr\fP\fB, size_t \fP\fIguardsize\fP\fB);\fP \fBint pthread_attr_getguardsize(const pthread_attr_t *restrict \fP\fIattr\fP\fB,\fP \fB size_t *restrict \fP\fIguardsize\fP\fB);\fP .fi .SH DESCRIERE Funcția \fBpthread_attr_setguardsize\fP() stabilește atributul „guard size” (dimensiune a gărzii) al obiectului de atribute ale firelor la care face referire \fIattr\fP la valoarea specificată în \fIguardsize\fP. .PP Dacă \fIguardsize\fP este mai mare decât 0, atunci pentru fiecare fir nou creat folosind \fIattr\fP, sistemul alocă o regiune suplimentară de cel puțin \fIguardsize\fP octeți la sfârșitul stivei firului pentru a acționa ca zonă de gardă pentru stivă (a se vedea însă secțiunea ERORI). .PP Dacă \fIguardsize\fP este 0, atunci firele noi create cu \fIattr\fP nu vor avea o zonă de gardă. .PP Dimensiunea implicită a gărzii este aceeași cu dimensiunea paginii sistemului. .PP Dacă atributul adresei stivei a fost stabilit în \fIattr\fP (utilizând \fBpthread_attr_setstack\fP(3) sau \fBpthread_attr_setstackaddr\fP(3)), ceea ce înseamnă că apelantul alocă stiva firului, atunci atributul dimensiunii gărzii este ignorat (de exemplu, \fBpthread_attr_setstackaddr\fP(3)), sistemul nu creează nicio zonă de gardă): este responsabilitatea aplicației să gestioneze depășirea stivei (poate prin utilizarea \fBmprotect\fP(2) pentru a defini manual o zonă de gardă la capătul stivei pe care a alocat\-o). .PP Funcția \fBpthread_attr_getguardsize\fP() returnează atributul "guard size" al obiectului atribute ale firului de execuție la care se face referire prin \fIattr\fP în memoria tampon indicată de \fIguardsize\fP.. .SH "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. .SH ERORI\-IEȘIRE POSIX.1 documentează o eroare \fBEINVAL\fP în cazul în care \fIattr\fP sau \fIguardsize\fP nu este validă. În Linux, aceste funcții reușesc întotdeauna (dar aplicațiile portabile și pregătite pentru viitor ar trebui totuși să se ocupe de o posibilă returnare de eroare). .SH ATRIBUTE Pentru o explicație a termenilor folosiți în această secțiune, a se vedea \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfață Atribut Valoare T{ .na .nh \fBpthread_attr_setguardsize\fP(), \fBpthread_attr_getguardsize\fP() T} Siguranța firelor MT\-Safe .TE .sp 1 .SH STANDARDE POSIX.1\-2008. .SH ISTORIC glibc 2.1. POSIX.1\-2001. .SH NOTE O zonă de gardă constă în pagini de memorie virtuală care sunt protejate pentru a împiedica accesul la citire și scriere. În cazul în care un fir de execuție își depășește stiva în zona de gardă, atunci, pe majoritatea arhitecturilor, primește un semnal \fBSIGSEGV\fP, fiind astfel notificat de depășire. Zonele de gardă încep la limitele paginilor, iar dimensiunea zonei de gardă este rotunjită în mod intern la dimensiunea paginii sistemului la crearea unui fir; (cu toate acestea, \fBpthread_attr_getguardsize\fP() returnează dimensiunea de gardă care a fost setată de \fBpthread_attr_setguardsize\fP().). .PP Stabilirea unei dimensiuni de gardă de 0 poate fi utilă pentru a economisi memorie într\-o aplicație care creează multe fire de execuție și știe că nu se poate produce niciodată o depășire a stivei. .PP Alegerea unei dimensiuni de gardă mai mari decât dimensiunea implicită poate fi necesară pentru detectarea depășirilor de stivă în cazul în care un fir alocă structuri de date mari pe stivă. .SH ERORI Ca și în glibc 2.8, implementarea NPTL threading include zona de gardă în cadrul alocării dimensiunii stivei, în loc să aloce spațiu suplimentar la sfârșitul stivei, așa cum prevede POSIX.1; (acest lucru poate avea ca rezultat o eroare \fBEINVAL\fP de la \fBpthread_create\fP(3) dacă valoarea dimensiunii de gardă este prea mare, nefiind lăsat spațiu pentru stiva propriu\-zisă). .PP .\" glibc includes the guardsize within the allocated stack size, .\" which looks pretty clearly to be in violation of POSIX. .\" .\" Filed bug, 22 Oct 2008: .\" https://www.sourceware.org/bugzilla/show_bug.cgi?id=6973 .\" .\" Older reports: .\" https//bugzilla.redhat.com/show_bug.cgi?id=435337 .\" Reportedly, LinuxThreads did the right thing, allocating .\" extra space at the end of the stack: .\" http://sourceware.org/ml/libc-alpha/2008-05/msg00086.html Implementarea învechită a LinuxThreads a făcut ceea ce trebuia, alocând spațiu suplimentar la sfârșitul stivei pentru zona de gardă. .SH EXEMPLE A se vedea \fBpthread_getattr_np\fP(3). .SH "CONSULTAȚI ȘI" \fBmmap\fP(2), \fBmprotect\fP(2), \fBpthread_attr_init\fP(3), \fBpthread_attr_setstack\fP(3), \fBpthread_attr_setstacksize\fP(3), \fBpthread_create\fP(3), \fBpthreads\fP(7) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .