tempnam(3) Library Functions Manual tempnam(3) NUME tempnam - creeaza un nume pentru un fiier temporar BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include char *tempnam(const char *dir, const char *pfx); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): tempnam(): Incepand cu glibc 2.19: _DEFAULT_SOURCE glibc 2.19 i versiunile anterioare: _BSD_SOURCE || _SVID_SOURCE DESCRIERE Nu folosii niciodata aceasta funcie. Folosii in schimb mkstemp(3) sau tmpfile(3). Funcia tempnam() returneaza un indicator catre un ir de caractere care este un nume de fiier valid i care este de aa natura incat un fiier cu acest nume nu exista in momentul verificarii tempnam(). Sufixul numelui de fiier al numelui de ruta generat va incepe cu pfx in cazul in care pfx este un ir non-NULL de cel mult cinci octei. Se cere ca partea de prefix de director a numelui de ruta generat sa fie ,,adecvata" (adesea, aceasta implica cel puin posibilitatea de a fi scrisa). Incercarile de a gasi un director adecvat parcurg urmatorii pai: a) In cazul in care variabila de mediu TMPDIR exista i conine numele unui director corespunzator, aceasta este utilizata. b) In caz contrar, daca argumentul dir nu este NULL i este adecvat, acesta este utilizat. c) In caz contrar, P_tmpdir (aa cum este definit in ) este utilizat atunci cand este cazul. d) In cele din urma, se poate utiliza un director definit de implementare. irul de caractere returnat de tempnam() este alocat folosind malloc(3) i, prin urmare, ar trebui sa fie eliberat de free(3). VALOAREA RETURNATA In caz de succes, funcia tempnam() returneaza un indicator catre un nume de fiier temporar unic. In cazul in care nu poate fi generat un nume unic, se returneaza NULL, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE ENOMEM A euat alocarea de spaiu de stocare. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +----------------------------------+---------------------+-------------+ |Interfaa | Atribut | Valoare | +----------------------------------+---------------------+-------------+ |tempnam() | Sigurana firelor | MT-Safe env | +----------------------------------+---------------------+-------------+ STANDARDE POSIX.1-2008. ISTORIC SVr4, 4.3BSD, POSIX.1-2001. Eliminata in POSIX.1-2008. NOTE Dei tempnam() genereaza nume care sunt greu de ghicit, este totui posibil ca intre momentul in care tempnam() returneaza un nume de ruta i momentul in care programul il deschide, un alt program sa creeze acel nume de ruta folosind open(2) sau sa il creeze ca o legatura simbolica. Acest lucru poate duce la gauri de securitate. Pentru a evita astfel de posibilitai, utilizai indicatorul open(2) O_EXCL pentru a deschide numele de ruta. Sau, mai bine, utilizai mkstemp(3) sau tmpfile(3). SUSv2 nu menioneaza utilizarea lui TMPDIR; glibc il va utiliza numai atunci cand programul nu este set-user-ID. Pe SVr4, directorul utilizat sub d) este /tmp (i aceasta este ceea ce face glibc). Deoarece aloca in mod dinamic memoria utilizata pentru a returna numele rutei, tempnam() este reentranta i, prin urmare, sigura pentru fire, spre deosebire de tmpnam(3). Funcia tempnam() genereaza un ir diferit de fiecare data cand este apelata, pana la TMP_MAX (definit in ) ori. In cazul in care este apelata de mai mult de TMP_MAX ori, comportamentul este definit de implementare. tempnam() utilizeaza cel mult primii cinci octei din pfx. Implementarea glibc a tempnam() eueaza cu eroarea EEXIST in cazul in care nu se gasete un nume unic. ERORI Sensul precis al cuvantului ,,adecvat" este nedefinit; nu este specificat modul in care se determina accesibilitatea unui director. CONSULTAI I mkstemp(3), mktemp(3), tmpfile(3), tmpnam(3) 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.06 31 octombrie 2023 tempnam(3)