Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       tempnam - creează un nume pentru un fișier temporar

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

REZUMAT

       #include <stdio.h>

       char *tempnam(const char *dir, const char *pfx);

   Cerințe   pentru   macrocomenzi  de  testare  a  caracteristicilor  pentru  glibc  (consultați
   feature_test_macros(7)):

       tempnam():
           Începând cu glibc 2.19:
               _DEFAULT_SOURCE
           glibc 2.19 și versiunile anterioare:
               _BSD_SOURCE || _SVID_SOURCE

DESCRIERE

       Nu folosiți niciodată această funcție. Folosiți în schimb mkstemp(3) sau tmpfile(3).

       Funcția tempnam() returnează un indicator către un șir de caractere care este un  nume  de
       fișier  valid  și  care  este  de  așa  natură  încât un fișier cu acest nume nu exista în
       momentul verificării tempnam(). Sufixul numelui de fișier al numelui de  rută  generat  va
       începe  cu pfx în cazul în care pfx este un șir non-NULL de cel mult cinci octeți. Se cere
       ca partea de prefix de director a numelui de  rută  generat  să  fie  „adecvată”  (adesea,
       aceasta implică cel puțin posibilitatea de a fi scrisă).

       Încercările de a găsi un director adecvat parcurg următorii pași:

       a) În  cazul  în  care  variabila  de  mediu TMPDIR există și conține numele unui director
          corespunzător, aceasta este utilizată.

       b) În caz contrar, dacă argumentul dir nu este NULL și este adecvat, acesta este utilizat.

       c) În caz contrar, P_tmpdir (așa cum este definit în <stdio.h>) este utilizat atunci  când
          este cazul.

       d) În cele din urmă, se poate utiliza un director definit de implementare.

       Șirul  de  caractere returnat de tempnam() este alocat folosind malloc(3) și, prin urmare,
       ar trebui să fie eliberat de free(3).

VALOAREA RETURNATĂ

       În caz de succes, funcția tempnam() returnează  un  indicator  către  un  nume  de  fișier
       temporar  unic. În cazul în care nu poate fi generat un nume unic, se returnează NULL, iar
       errno este configurată pentru a indica eroarea.

ERORI

       ENOMEM A eșuat alocarea de spațiu de stocare.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

       ┌───────────────────────────────────────────────────────┬───────────────────┬─────────────┐
       │InterfațăAtributValoare     │
       ├───────────────────────────────────────────────────────┼───────────────────┼─────────────┤
       │tempnam()                                              │ Siguranța firelor │ MT-Safe env │
       └───────────────────────────────────────────────────────┴───────────────────┴─────────────┘

STANDARDE

       SVr4, 4.3BSD, POSIX.1-2001.  POSIX.1-2008 marchează tempnam() ca fiind obsoletă.

NOTE

       Deși tempnam() generează nume care sunt greu de  ghicit,  este  totuși  posibil  ca  între
       momentul  în  care  tempnam()  returnează un nume de rută și momentul în care programul îl
       deschide, un alt program să creeze acel nume de rută folosind open(2) sau să îl creeze  ca
       o legătură simbolică. Acest lucru poate duce la găuri de securitate. Pentru a evita astfel
       de posibilități, utilizați indicatorul open(2) O_EXCL pentru a deschide  numele  de  rută.
       Sau, mai bine, utilizați mkstemp(3) sau tmpfile(3).

       SUSv2  nu  menționează  utilizarea  lui  TMPDIR;  glibc  îl  va  utiliza numai atunci când
       programul nu este set-user-ID. Pe SVr4, directorul utilizat sub d) este /tmp  (și  aceasta
       este ceea ce face glibc).

       Deoarece  alocă  în mod dinamic memoria utilizată pentru a returna numele rutei, tempnam()
       este reentrantă și, prin urmare, sigură pentru fire, spre deosebire de tmpnam(3).

       Funcția tempnam() generează un șir diferit de fiecare dată  când  este  apelată,  până  la
       TMP_MAX  (definit în <stdio.h>) ori.  În cazul în care este apelată de mai mult de TMP_MAX
       ori, comportamentul este definit de implementare.

       tempnam() utilizează cel mult primii cinci octeți din pfx.

       Implementarea glibc a tempnam() eșuează cu eroarea EEXIST în cazul în care nu  se  găsește
       un nume unic.

ERORI

       Sensul  precis al cuvântului „adecvat” este nedefinit; nu este specificat modul în care se
       determină accesibilitatea unui director.

CONSULTAȚI ȘI

       mkstemp(3), mktemp(3), tmpfile(3), tmpnam(3)

TRADUCERE

       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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.