Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       unlink, unlinkat - șterge un nume și, eventual, fișierul la care se referă

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <unistd.h>

       int unlink(const char *nume-rută);

       #include <fcntl.h>           /* Definirea constantelor AT_* */
       #include <unistd.h>

       int unlinkat(int fd-director, const char *nume-rută, int fanioane);

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

       unlinkat():
           Începând cu glibc 2.10
               _POSIX_C_SOURCE >= 200809L
           Înainte de glibc 2.10:
               _ATFILE_SOURCE

DESCRIERE

       unlink()  șterge  un  nume  din  sistemul  de fișiere. Dacă numele respectiv a fost ultima legătură la un
       fișier și niciun proces nu are fișierul deschis, fișierul este șters, iar spațiul pe care îl folosea este
       disponibil pentru reutilizare.

       Dacă numele a fost ultima legătură la un fișier, dar orice proces are încă fișierul deschis, fișierul  va
       rămâne în existență până când ultimul descriptor de fișier care se referă la acesta este închis.

       În cazul în care numele se referea la o legătură simbolică, aceasta este eliminată.

       Dacă  numele  se  referea  la un soclu, FIFO sau dispozitiv, numele acestuia este eliminat, dar procesele
       care au obiectul deschis pot continua să îl utilizeze.

   unlinkat()
       Apelul de sistem unlinkat() funcționează exact în același mod ca unlink() sau  rmdir(2)  (în  funcție  de
       faptul dacă fanioane include sau nu fanionul AT_REMOVEDIR), cu excepția diferențelor descrise aici.

       Dacă numele de rută dat în nume-rută este relativ, atunci acesta este interpretat în raport cu directorul
       la  care  se referă descriptorul de fișier fd-director ( și nu în raport cu directorul curent de lucru al
       procesului apelant, așa cum se procedează în unlink() și rmdir(2) pentru un nume de rută relativ).

       Dacă numele de rută dat în nume-rută este relativ și fd-director este valoarea specială AT_FDCWD,  atunci
       nume-rută  este  interpretat  relativ la directorul curent de lucru al procesului apelant (ca unlink() și
       rmdir(2)).

       Dacă numele de rută dat în nume-rută este absolut, atunci fd-director este ignorat.

       fanioane este o mască de biți care poate fi specificată fie ca 0, fie prin asocierea conform logicii  SAU
       a  valorilor  fanioanelor  care  controlează  funcționarea unlinkat(). În prezent, este definit un singur
       astfel de fanion:

       AT_REMOVEDIR
              În mod implicit, unlinkat() efectuează echivalentul  lui  unlink()  pe  nume-rută.  Dacă  fanionul
              AT_REMOVEDIR este specificat, efectuează echivalentul lui rmdir(2) pe nume-rută.

       A se vedea openat(2) pentru o explicație a necesității unlinkat().

VALOAREA RETURNATĂ

       În  caz  de  succes,  se  returnează zero. În caz de eroare, se returnează -1, iar errno este configurată
       pentru a indica eroarea.

ERORI-IEȘIRE

       EACCES Accesul de scriere la directorul care conține nume-rută nu este permis pentru  UID-ul  efectiv  al
              procesului,  sau  unul  dintre  directorii din nume-rută nu a permis permisiunea de căutare; (a se
              vedea și path_resolution(7)).

       EBUSY  Fișierul nume-rută nu poate fi dezlegat deoarece este utilizat de sistem sau de un alt proces;  de
              exemplu,  este  un  punct  de  montare sau software-ul client NFS l-a creat pentru a reprezenta un
              nod-i activ, dar fără nume („NFS silly renamed”).

       EFAULT nume-rută indică în afara spațiului de adrese accesibil.

       EIO    A apărut o eroare de In/Ieș.

       EISDIR nume-rută se referă la un director;  (aceasta  este  valoarea  non-POSIX  returnată  de  la  Linux
              2.1.132).

       ELOOP  Prea multe legături simbolice au fost întâlnite în traducerea nume-rută.

       ENAMETOOLONG
              nume-rută este prea lung.

       ENOENT O componentă din nume-rută nu există sau este o legătură simbolică ruptă, sau nume-rută este gol.

       ENOMEM Nu a fost disponibilă suficientă memorie pentru nucleu.

       ENOTDIR
              O componentă utilizată ca director în nume-rută nu este, de fapt, un director.

       EPERM  Sistemul  nu  permite dezlegarea directoarelor sau dezlegarea directoarelor necesită privilegii pe
              care procesul apelant nu le are; (acesta este rezultatul de eroare prescris de POSIX; după cum s-a
              menționat mai sus, Linux returnează EISDIR pentru acest caz).

       EPERM (numai în Linux)
              Sistemul de fișiere nu permite dezlegarea fișierelor.

       EPERM sau EACCES
              Directorul care conține nume-rută are bitul  lipicios  (S_ISVTX)  activat  și  UID-ul  efectiv  al
              procesului nu este nici UID-ul fișierului care urmează să fie șters, nici cel al directorului care
              îl conține, iar procesul nu este privilegiat (Linux: nu are capacitatea CAP_FOWNER).

       EPERM  Fișierul  care  urmează  să fie dezlegat este marcat ca fiind imuabil sau numai cu adăugare; (a se
              vedea FS_IOC_SETFLAGS(2const).)

       EROFS  nume-rută se referă la un fișier pe un sistem de fișiere numai-pentru-citire.

       Aceleași erori care apar pentru unlink() și rmdir(2) pot apărea și pentru unlinkat().  Următoarele  erori
       suplimentare pot apărea pentru unlinkat():

       EBADF  nume-rută este relativ, dar dirfd nu este nici AT_FDCWD, nici un descriptor de fișier valid.

       EINVAL O valoare nevalidă de fanion a fost specificată în fanioane.

       EISDIR nume-rută se referă la un director, iar AT_REMOVEDIR nu a fost specificat în fanioane.

       ENOTDIR
              nume-rută  este  relativ și dirfd este un descriptor de fișier ce se referă la un alt fișier decât
              un director.

STANDARDE

       POSIX.1-2008.

ISTORIC

       unlink()
              SVr4, 4.3BSD, POSIX.1-2001.

       unlinkat()
              POSIX.1-2008. Linux 2.6.16, glibc 2.4.

   glibc
       Pe nucleele mai vechi în care unlinkat() nu  este  disponibil,  funcția  de  învăluire  glibc  revine  la
       utilizarea  unlink() sau rmdir(2). Atunci când nume-rută este un nume de rută relativ, glibc construiește
       un nume de rută bazat pe legătura simbolică din /proc/self/fd care corespunde argumentului fd-director.

ERORI

       Neajunsurile din protocolul care stă la baza NFS pot provoca dispariția  neașteptată  a  fișierelor  care
       sunt încă utilizate.

CONSULTAȚI ȘI

       rm(1),  unlink(1),  chmod(2),  link(2),  mknod(2),  open(2),  rename(2),  rmdir(2), mkfifo(3), remove(3),
       path_resolution(7), symlink(7)

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   făcută   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.

Pagini de manual de Linux 6.9.1                   13 iunie 2024                                        unlink(2)