.\" -*- coding: UTF-8 -*- '\" t .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getcwd 3 "28 iunie 2025" "Pagini de manual de Linux 6.15" .SH NUME getcwd, getwd, get_current_dir_name \- obține directorul curent de lucru .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSIS .nf \fB#include \fP .P \fBchar *getcwd(\fPsize_t size; \fB char \fP\fIbuf\fP\fB[\fP\fIsize\fP\fB], size_t \fP\fIsize\fP\fB);\fP \fBchar *get_current_dir_name(void);\fP .P \fB[[depreciat]] char *getwd(char \fP\fIbuf\fP\fB[PATH_MAX]);\fP .fi .P .RS -4 Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați \fBfeature_test_macros\fP(7)): .RE .P \fBget_current_dir_name\fP(): .nf _GNU_SOURCE .fi .P \fBgetwd\fP(): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED Începând cu glibc 2.12: (_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200809L) || /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE Înainte de glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE >= 500 .fi .SH DESCRIERE Aceste funcții returnează un șir de caractere cu terminație nulă care conține un nume de rută absolut care este directorul de lucru curent al procesului apelant. Numele rutei este returnat ca rezultat al funcției și prin intermediul argumentului \fIbuf\fP, dacă este prezent. .P Funcția \fBgetcwd\fP() copiază un nume de rută absolut al directorului curent de lucru în matricea indicată de \fIbuf\fP, care are lungimea \fIsize\fP. .P Dacă lungimea numelui de rută absolut al directorului de lucru curent, inclusiv octetul nul de terminare, depășește \fIsize\fP octeți, se returnează NULL, iar \fIerrno\fP este stabilită la \fBERANGE\fP; o aplicație trebuie să verifice această eroare și să aloce o memorie tampon mai mare dacă este necesar. .P Ca extensie la standardul POSIX.1\-2001, \fBgetcwd\fP() al glibc alocă memoria tampon dinamic folosind \fBmalloc\fP(3) dacă \fIbuf\fP este NULL. În acest caz, memoria tampon alocată are lungimea \fIsize\fP, cu excepția cazului în care \fIsize\fP este zero, când \fIbuf\fP este alocat cât de mare este necesar. Apelantul trebuie să elibereze cu \fBfree\fP(3) memoria tampon returnată. .P \fBget_current_dir_name\fP() va aloca cu \fBmalloc\fP(3) o matrice suficient de mare pentru a conține ruta absolută a directorului curent de lucru. Dacă variabila de mediu \fBPWD\fP este definită, iar valoarea sa este corectă, atunci această valoare va fi returnată. Apelantul trebuie să elibereze cu \fBfree\fP(3) memoria tampon returnată. .P \fBgetwd\fP() nu \fBmalloc\fP(3) nicio memorie. Argumentul \fIbuf\fP trebuie să fie un indicator către o matrice cu o lungime de cel puțin \fBPATH_MAX\fP octeți. Dacă lungimea numelui de rută absolut al directorului de lucru curent, inclusiv octetul nul de terminare, depășește \fBPATH_MAX\fP octeți, se returnează NULL, iar \fIerrno\fP este stabilităt la \fBENAMETOOLONG\fP. \- Rețineți că pe unele sisteme, \fBPATH_MAX\fP poate să nu fie o constantă în timp de compilare; în plus, valoarea sa poate depinde de sistemul de fișiere, consultați \fBpathconf\fP(3)). \- Din motive de portabilitate și securitate, utilizarea lui \fBgetwd\fP() este depreciată. .SH "VALOAREA RETURNATĂ" În caz de succes, aceste funcții returnează un indicator către un șir de caractere care conține numele de rută al directorului de lucru curent. În cazul funcțiilor \fBgetcwd\fP() și \fBgetwd\fP(), aceasta are aceeași valoare ca \fIbuf\fP. .P În caz de eșec, aceste funcții returnează NULL, iar \fIerrno\fP este configurată pentru a indica eroarea. Conținutul matricei indicate de \fIbuf\fP este nedefinit în caz de eroare. .SH ERORI\-IEȘIRE .TP \fBEACCES\fP Permisiunea de a citi sau de a căuta o componentă a numelui fișierului a fost refuzată. .TP \fBEFAULT\fP \fIbuf\fP indică o adresă greșită. .TP \fBEINVAL\fP Argumentul \fIsize\fP este zero și \fIbuf\fP nu este un indicator nul. .TP \fBEINVAL\fP \fBgetwd\fP(): \fIbuf\fP este NULL. .TP \fBENAMETOOLONG\fP \fBgetwd\fP(): Dimensiunea șirului de nume de rută absolut cu terminație nulă depășește \fBPATH_MAX\fP octeți. .TP \fBENOENT\fP Directorul curent de lucru a fost dezlegat(șters). .TP \fBENOMEM\fP Memorie insuficientă. .TP \fBERANGE\fP Argumentul \fIsize\fP este mai mic decât lungimea numelui de rută absolut al directorului de lucru, inclusiv octetul nul de încheiere. Trebuie să alocați o matrice mai mare și să încercați din nou. .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 \fBgetcwd\fP(), \fBgetwd\fP() T} Siguranța firelor MT\-Safe T{ .na .nh \fBget_current_dir_name\fP() T} Siguranța firelor MT\-Safe env .TE .SH VERSIUNI POSIX.1\-2001 lasă comportamentul lui \fBgetcwd\fP() nespecificat dacă \fIbuf\fP este NULL. .P POSIX.1\-2001 nu definește nicio eroare pentru \fBgetwd\fP(). .SH VERSIUNI .SS "Diferențe între biblioteca C și nucleu" .\" commit 3272c544da48f8915a0e34189182aed029bd0f2b În Linux, nucleul oferă un apel de sistem \fBgetcwd\fP(), pe care funcțiile descrise în această pagină îl vor utiliza dacă este posibil. Apelul de sistem ia aceleași argumente ca și funcția de bibliotecă cu același nume, dar este limitat la returnarea a cel mult \fBPATH_MAX\fP octeți. (Înainte de Linux 3.12, limita de dimensiune a numelui de rută returnat era dimensiunea paginii de sistem. Pe multe arhitecturi, \fBPATH_MAX\fP și dimensiunea paginii de sistem sunt ambele de 4096 octeți, dar câteva arhitecturi au o dimensiune a paginii mai mare). Dacă lungimea numelui de rută al directorului de lucru curent depășește această limită, atunci apelul de sistem eșuează cu eroarea \fBENAMETOOLONG\fP. În acest caz, funcțiile bibliotecii revin la o implementare alternativă (mai lentă) care returnează numele de rută complet. .P .\" commit 8df9d1a4142311c084ffeeacb67cd34d190eff74 Ca urmare a unei modificări în Linux 2.6.36, numele de rută returnat de apelul de sistem \fBgetcwd\fP() va fi prefixat cu șirul „(unreachable)” dacă directorul curent nu se află sub directorul rădăcină al procesului curent (de exemplu, deoarece procesul a stabilit o nouă rădăcină a sistemului de fișiere utilizând \fBchroot\fP(2) fără a\-și schimba directorul curent în noua rădăcină). Un astfel de comportament poate fi cauzat și de un utilizator neprivilegiat prin schimbarea directorului curent într\-un alt spațiu de nume de montare. Atunci când au de\-a face cu nume de rută din surse neîncrezătoare, apelanții funcțiilor descrise în această pagină (înainte de glibc 2.27) sau apelul de sistem \fBgetcwd\fP() brut ar trebui să ia în considerare verificarea dacă numele de rută returnat începe cu „/” sau „(” pentru a evita interpretarea eronată a unei rute inaccesibile ca fiind un nume de rută relativ. .SH STANDARDE .TP \fBgetcwd\fP() POSIX.1\-2008. .TP \fBget_current_dir_name\fP() GNU. .TP \fBgetwd\fP() Niciunul. .SH ISTORIC .TP \fBgetcwd\fP() POSIX.1\-2001. .TP \fBgetwd\fP() POSIX.1\-2001, dar marcat ca ÎNVECHIT. Eliminat în POSIX.1\-2008. Utilizați în schimb \fBgetcwd\fP(). .P Sub Linux, aceste funcții utilizează apelul de sistem \fBgetcwd\fP() (disponibil începând cu Linux 2.1.92). Pe sistemele mai vechi, acestea ar interoga \fI/proc/self/cwd\fP. Dacă lipsesc atât apelul de sistem, cât și sistemul de fișiere proc, este apelată o implementare generică. Numai în acest caz aceste apeluri pot eșua sub Linux cu \fBEACCES\fP. .SH NOTE Aceste funcții sunt adesea utilizate pentru a salva locația directorului curent de lucru în scopul revenirii la acesta ulterior. Deschiderea directorului curent („.”) și apelarea \fBfchdir\fP(2) pentru a reveni este de obicei o alternativă mai rapidă și mai fiabilă atunci când sunt disponibili suficient de mulți descriptori de fișiere, în special pe alte platforme decât Linux. .SH ERORI De la modificarea Linux 2.6.36 care a adăugat „(unreachable)” în circumstanțele descrise mai sus, implementarea glibc a \fBgetcwd\fP() nu s\-a conformat POSIX și a returnat un nume de rută relativ atunci când locația API necesită un nume de rută absolut. Începând cu glibc 2.27, acest lucru este corectat; apelarea \fBgetcwd\fP() de la un astfel de nume de rută va duce acum la eșec cu \fBENOENT\fP. .SH "CONSULTAȚI ȘI" \fBpwd\fP(1), \fBchdir\fP(2), \fBfchdir\fP(2), \fBopen\fP(2), \fBunlink\fP(2), \fBfree\fP(3), \fBmalloc\fP(3) .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 .