putenv(3) | Library Functions Manual | putenv(3) |
putenv - modifică sau adaugă o variabilă de mediu
Biblioteca C standard (libc, -lc)
#include <stdlib.h>
int putenv(char *string);
putenv():
_XOPEN_SOURCE || /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _SVID_SOURCE
Funcția putenv() adaugă sau modifică valoarea variabilelor de mediu. Argumentul string este de forma nume=valoare. Dacă nume nu există deja în mediu, atunci string se adaugă în mediu. Dacă nume există, atunci valoarea lui nume din mediu este schimbată în valoare. Șirul indicat de string devine parte a mediului, astfel încât modificarea șirului modifică mediul.
Funcția putenv() returnează zero în caz de succes. În caz de eșec, aceasta returnează o valoare diferită de zero, iar errno este configurată pentru a indica eroarea.
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare |
putenv() | Siguranța firelor | MT-Unsafe const:env |
POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.
Nu este necesar ca funcția putenv() să fie reentrantă, iar cea din glibc 2.0 nu este, dar cea din versiunea glibc 2.1 este.
Începând cu glibc 2.1.2, implementarea glibc este conformă cu SUSv2: se utilizează indicatorul string dat în putenv(). În special, acest șir devine parte a mediului; modificarea ulterioară a acestuia va modifica mediul; (astfel, este o eroare să se apeleze putenv() cu o variabilă automată ca argument, apoi să se revină din funcția de apelare în timp ce string face încă parte din mediu). Cu toate acestea, de la glibc 2.0 la glibc 2.1.1, aceasta diferă: se utilizează o copie a șirului de caractere. Pe de o parte, acest lucru cauzează o pierdere de memorie, iar pe de altă parte încalcă SUSv2.
Versiunea 4.4BSD, ca și glibc 2.0, utilizează o copie.
SUSv2 elimină const din prototip, la fel și glibc 2.1.3.
Implementarea bibliotecii GNU C oferă o extensie nestandardizată. Dacă string nu include un semn egal:
putenv("NUME");
atunci variabila numită este eliminată din mediul apelantului.
clearenv(3), getenv(3), setenv(3), unsetenv(3), environ(7)
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.
5 februarie 2023 | Pagini de manual de Linux 6.03 |