symlink(2) System Calls Manual symlink(2) NUME symlink, symlinkat - creeaza un nou nume pentru un fiier BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include int symlink(const char *target, const char *linkpath); #include /* Definirea constantelor AT_* */ #include int symlinkat(const char *target, int newdirfd, const char *linkpath); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): symlink(): _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L || /* glibc <= 2.19: */ _BSD_SOURCE symlinkat(): Incepand cu glibc 2.10 _POSIX_C_SOURCE >= 200809L Inainte de glibc 2.10: _ATFILE_SOURCE DESCRIERE symlink() creeaza o legatura simbolica numita linkpath care conine irul target. Legaturile simbolice sunt interpretate in timpul rularii ca i cum coninutul legaturii ar fi fost substituit in ruta urmata pentru a gasi un fiier sau un director. Legaturile simbolice pot conine componente de ruta .., care (daca sunt utilizate la inceputul legaturii) se refera la directoarele parinte ale celui in care se afla legatura. O legatura simbolica (cunoscuta i sub denumirea de legatura soft) poate indica un fiier existent sau unul inexistent; in acest din urma caz, se vorbete despre o legatura suspendata. Permisiunile unei legaturi simbolice sunt irelevante; proprietatea este ignorata atunci cand se urmeaza legatura (cu excepia cazului in care este activata caracteristica protected_symlinks, aa cum se explica in proc(5)), dar este verificata atunci cand se solicita eliminarea sau redenumirea legaturii i legatura se afla intr-un director cu bitul lipicios (S_ISVTX) activat. Daca linkpath exista, acesta nu va fi suprascris. symlinkat() Apelul de sistem symlinkat() funcioneaza exact in acelai mod ca symlink(), cu excepia diferenelor descrise aici. Daca numele rutei specificat in linkpath este relativ, atunci acesta este interpretat relativ la directorul la care se refera descriptorul de fiier newdirfd (in loc sa fie interpretat relativ la directorul de lucru curent al procesului apelant, aa cum se intampla in cazul symlink() pentru un nume de ruta relativ). Daca linkpath este relativ i newdirfd este valoarea speciala AT_FDCWD, atunci linkpath este interpretat relativ la directorul de lucru curent al procesului apelant (ca symlink()). Daca linkpath este absoluta, atunci newdirfd este ignorata. Consultai openat(2) pentru o explicaie a necesitaii symlinkat(). VALOAREA RETURNATA In caz de succes, se returneaza zero. In caz de eroare, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EACCES Accesul in scriere la directorul care conine linkpath este refuzat sau unul dintre directoarele din prefixul rutei linkpath nu permite permisiunea de cautare. (A se vedea de asemenea, path_resolution(7).) EBADF (symlinkat()) linkpath este relativa, dar newdirfd nu este nici AT_FDCWD, nici un descriptor de fiier valid. EDQUOT Cota de resurse a utilizatorului pe sistemul de fiiere a fost epuizata. Resursele pot fi noduri -i sau blocuri de disc, in funcie de implementarea sistemului de fiiere. EEXIST linkpath exista deja. EFAULT target sau linkpath indica in afara spaiului dvs. de adrese accesibil. EIO A aparut o eroare de In/Ie. ELOOP Au fost gasite prea multe legaturi simbolice in rezolvarea linkpath. ENAMETOOLONG target sau linkpath era prea lunga. ENOENT O componenta a directorului din linkpath nu exista sau este o legatura simbolica suspendata, sau target sau linkpath este un ir gol. ENOENT (symlinkat()) linkpath este o ruta relativa, iar newdirfd se refera la un director care a fost ters. ENOMEM Nu a fost disponibila suficienta memorie pentru nucleu. ENOSPC Dispozitivul care conine fiierul nu are loc pentru noua intrare in director. ENOTDIR O componenta utilizata ca director in linkpath nu este, de fapt, un director. ENOTDIR (symlinkat()) linkpath este relativa, iar newdirfd este un descriptor de fiier care se refera la un fiier, altul decat un director. EPERM Sistemul de fiiere care conine linkpath nu accepta crearea de legaturi simbolice. EROFS linkpath se afla pe un sistem de fiiere numai-pentru-citire. STANDARDE POSIX.1-2008. ISTORIC symlink() SVr4, 4.3BSD, POSIX.1-2001. symlinkat() POSIX.1-2008. Linux 2.6.16, glibc 2.4. note glibc Pe nucleele mai vechi, unde symlinkat() nu este disponibila, funcia de invaluire glibc revine la utilizarea symlink(). Cand linkpath este un nume de ruta relativa, glibc construiete un nume de ruta bazat pe legatura simbolica din /proc/self/fd care corespunde argumentului newdirfd. NOTE Nu se efectueaza nicio verificare a target. tergerea numelui la care face referire o legatura simbolica va terge efectiv fiierul (cu excepia cazului in care acesta are i alte legaturi fizice). Daca nu dorii acest comportament, utilizai link(2). CONSULTAI I ln(1), namei(1), lchown(2), link(2), lstat(2), open(2), readlink(2), rename(2), unlink(2), path_resolution(7), symlink(7) 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.15 17 mai 2025 symlink(2)