.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 2003 Andries Brouwer (aeb@cwi.nl) .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getgrent_r 3 "2 mai 2024" "Pagini de manual de Linux 6.8" .SH NUME getgrent_r, fgetgrent_r \- obține intrarea fișierului de grup în mod reentrant .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSIS .nf \fB#include \fP .P \fBint getgrent_r(struct group *restrict \fP\fIgbuf\fP\fB,\fP \fB char \fP\fIbuf\fP\fB[restrict .\fP\fIbuflen\fP\fB], size_t \fP\fIbuflen\fP\fB,\fP \fB struct group **restrict \fP\fIgbufp\fP\fB);\fP \fBint fgetgrent_r(FILE *restrict \fP\fIstream\fP\fB, struct group *restrict \fP\fIgbuf\fP\fB,\fP \fB char \fP\fIbuf\fP\fB[restrict .\fP\fIbuflen\fP\fB], size_t \fP\fIbuflen\fP\fB,\fP \fB struct group **restrict \fP\fIgbufp\fP\fB);\fP .fi .P .RS -4 Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați \fBfeature_test_macros\fP(7)): .RE .P \fBgetgrent_r\fP(): .nf _GNU_SOURCE .fi .\" FIXME . The FTM requirements seem inconsistent here. File a glibc bug? .P \fBfgetgrent_r\fP(): .nf Începând cu glibc 2.19: _DEFAULT_SOURCE glibc 2.19 și versiunile anterioare: _SVID_SOURCE .fi .SH DESCRIERE Funcțiile \fBgetgrent_r\fP() și \fBfgetgrent_r\fP() sunt versiunile reentrante ale funcțiilor \fBgetgrent\fP(3) și \fBfgetgrent\fP(3). Prima citește următoarea intrare de grup din fluxul inițializat de \fBsetgrent\fP(3). Cea de\-a doua citește următoarea intrare de grup din \fIstream\fP. .P Structura \fIgroup\fP este definită în \fI\fP după cum urmează: .P .in +4n .EX struct group { char *gr_name; /* numele grupului */ char *gr_passwd; /* parola grupului */ gid_t gr_gid; /* identificatorul grupului */ char **gr_mem; /* vector de indicatori cu terminație NULL la numele membrilor grupului */ }; .EE .in .P Pentru mai multe informații despre câmpurile acestei structuri, a se vedea \fBgroup\fP(5). .P Funcțiile care nu sunt reentrante returnează un indicator către stocarea statică, unde această stocare statică conține alți indicatori către numele grupului, parola și membrii. Funcțiile reentrante descrise aici returnează toate acestea în memoriile tampon furnizate de apelant. În primul rând, există o memorie tampon \fIgbuf\fP care poate conține o \fIstructură de grup\fP. Și apoi tamponul \fIbuf\fP de dimensiune \fIbuflen\fP care poate conține șiruri de caractere suplimentare. Rezultatul acestor funcții, \fIstructura de grup\fP citită din flux, este stocată în memoria tampon furnizată \fI*gbuf\fP, iar un indicator la această \fIstructură de grup\fP este returnat în \fI*gbufp\fP. .SH "VALOAREA RETURNATĂ" În caz de succes, aceste funcții returnează 0, iar \fI*gbufp\fP este un indicator la \fIstructura de grup\fP. În caz de eroare, aceste funcții returnează o valoare de eroare, iar \fI*gbufp\fP este NULL. .SH ERORI\-IEȘIRE .TP \fBENOENT\fP Nu mai există alte intrări. .TP \fBERANGE\fP Spațiu de memorie tampon furnizat insuficient. Încercați din nou cu o memorie tampon mai mare. .SH ATRIBUTE Pentru o explicație a termenilor folosiți în această secțiune, a se vedea \fBattributes\fP(7). .TS allbox; lb lb lbx l l l. Interfață Atribut Valoare T{ .na .nh \fBgetgrent_r\fP() T} Siguranța firelor T{ .na .nh MT\-Unsafe race:grent locale T} T{ .na .nh \fBfgetgrent_r\fP() T} Siguranța firelor T{ .na .nh MT\-Safe T} .TE .P În tabelul de mai sus, \fIgrent\fP din \fIrace:grent\fP semnifică faptul că, dacă oricare dintre funcțiile \fBsetgrent\fP(3), \fBgetgrent\fP(3), \fBendgrent\fP(3) sau \fBgetgrent_r\fP() sunt utilizate în paralel în diferite fire de execuție ale unui program, pot apărea competiții de date. .SH VERSIUNI Alte sisteme utilizează prototipul .P .in +4n .EX struct group *getgrent_r(struct group *grp, char *buf, int buflen); .EE .in .P sau, mai bine zis, .P .in +4n .EX int getgrent_r(struct group *grp, char *buf, int buflen, FILE **gr_fp); .EE .in .SH STANDARDE GNU. .SH ISTORIC Aceste funcții sunt realizate într\-un stil asemănător cu versiunea POSIX a unor funcții precum \fBgetpwnam_r\fP(3). .SH NOTE Funcția \fBgetgrent_r\fP() nu este cu adevărat reentrantă, deoarece împarte poziția de citire în flux cu toate celelalte fire de execuție. .SH EXEMPLE .\" SRC BEGIN (getgrent_r.c) .EX #define _GNU_SOURCE #include #include #include #include #define BUFLEN 4096 \& int main(void) { struct group grp; struct group *grpp; char buf[BUFLEN]; int i; \& setgrent(); while (1) { i = getgrent_r(&grp, buf, sizeof(buf), &grpp); if (i) break; printf("%s (%jd):", grpp\->gr_name, (intmax_t) grpp\->gr_gid); for (size_t j = 0; ; j++) { if (grpp\->gr_mem[j] == NULL) break; printf(" %s", grpp\->gr_mem[j]); } printf("\en"); } endgrent(); exit(EXIT_SUCCESS); } .EE .\" perhaps add error checking - should use strerror_r .\" #include .\" #include .\" if (i) { .\" if (i == ENOENT) .\" break; .\" printf("getgrent_r: %s", strerror(i)); .\" exit(EXIT_FAILURE); .\" } .\" SRC END .SH "CONSULTAȚI ȘI" \fBfgetgrent\fP(3), \fBgetgrent\fP(3), \fBgetgrgid\fP(3), \fBgetgrnam\fP(3), \fBputgrent\fP(3), \fBgroup\fP(5) .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 .