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

NOME

       symlink, symlinkat - crea un nuovo nome per un file

LIBRERIA

       Libreria C standard (libc, -lc)

SINTASSI

       #include <unistd.h>

       int symlink(const char *target, const char *linkpath);

       #include <fcntl.h>           /* Definizione delle costanti AT_* */
       #include <unistd.h>

       int symlinkat(const char *target, int newdirfd, const char *linkpath);

   Macro per test di funzionalità per glibc (vedere feature_test_macros(7)):

       symlink():
           _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L
               || /* glibc <= 2.19: */ _BSD_SOURCE

       symlinkat():
           A partire da glibc 2.10:
               _POSIX_C_SOURCE >= 200809L
           Prima di glibc 2.10:
               _ATFILE_SOURCE

DESCRIZIONE

       symlink() crea un collegamento simbolico con nome linkpath che contiene la stringa target.

       I  collegamenti  simbolici  sono  interpretati all'esecuzione come se il contenuto del collegamento fosse
       stato sostituito nel percorso seguito per trovare un file o una directory.

       Un collegamento simbolico può contenere .. come componente del percorso, che  (se  usato  all'inizio  del
       collegamento) fa riferimento alle directory superiori a quella nella quale risiede il collegamento.

       Un collegamento simbolico (conosciuto anche come soft link) può puntare ad un file esistente o ad uno non
       esistente: in quest'ultimo caso è detto dangling link.

       I permessi di un collegamento simbolico sono irrilevanti. Quando si segue il collegamento il proprietario
       viene  ignorato  (fatta  eccezione  per  quando  la  caratteristica  protected_symlinks è abilitata, come
       spiegato in proc(5)); viene invece controllato  quando  si  richiede  la  rimozione  o  la  rinomina  del
       collegamento che si trovi in una directory con lo sticky bit (S_ISVTX) impostato.

       Se linkpath esiste non verrà sovrascritto.

   symlinkat()
       La  chiamata  di  sistema symlinkat() opera esattamente nello stesso modo di symlink(), tranne che per le
       differenze di seguito descritte.

       Se il nome di percorso dato in linkpath è relativo, è interpretato come relativo alla directory a cui  il
       descrittore di file newdirfd fa riferimento (piuttosto che relativo alla directory di lavoro corrente del
       processo chiamante, come fa symlink() per un nome di percorso relativo).

       Se  linkpath  è  relativo e newdirfd è il valore speciale AT_FDCWD, linkpath è interpretato come relativo
       alla directory di lavoro corrente del processo chiamante (come symlink()).

       Se linkpath è assoluto, newdirfd è ignorato.

       Vedere openat(2) per una spiegazione dei requisiti di symlinkat().

VALORE RESTITUITO

       In caso di successo restituisce zero. In caso di errore restituisce  -1,  e  errno  verrà  impostato  per
       indicare l'errore.

ERRORI

       EACCES Non  è  possibile l'accesso in scrittura alla directory contenente linkpath, o una delle directory
              contenute nel prefisso del percorso di linkpath non ha  il  permesso  di  ricerca.  (Vedere  anche
              path_resolution(7).)

       EBADF  (symlinkat())  linkpath è relativo ma newdirfd non è né AT_FDCWD né un descrittore di file valido.

       EDQUOT La  quota  di  risorse  dell'utente  sul  filesystem è esaurita. Le risorse possono essere inode o
              blocchi del disco, a seconda dell'implementazione del filesystem.

       EEXIST linkpath esiste già.

       EFAULT target o linkpath puntano fuori dallo spazio di indirizzamento accessibile.

       EIO    Si è verificato errore I/O.

       ELOOP  Si sono incontrati troppi collegamenti simbolici nella risoluzione di linkpath.

       ENAMETOOLONG
              target o linkpath è troppo lungo.

       ENOENT Una directory contenuta in linkpath non esiste o è un collegamento simbolico scollegato, o  target
              o linkpath è una stringa vuota.

       ENOENT (symlinkat())  linkpath  è  un  percorso  relativo e newdirfd fa riferimento a una directory che è
              stata eliminata.

       ENOMEM Insufficiente memoria disponibile per il kernel.

       ENOSPC Il dispositivo contenente il file non ha spazio per la nuova directory.

       ENOTDIR
              Un elemento usato come directory in linkpath non è, in effetti, una directory.

       ENOTDIR
              (symlinkat())  linkpath è relativo e newdirfd è un descrittore di file fa riferimento  a  un  file
              anziché a una directory.

       EPERM  Il filesystem contenente linkpath non supporta la creazione di collegamenti simbolici.

       EROFS  linkpath è contenuto in un filesystem in sola lettura.

CONFORME A

       POSIX.1-2008.

STORIA

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

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

   note su glibc
       Su  vecchi  kernel  dove  symlinkat()  non  è disponibile, la funzione wrapper glibc retrocede all'uso di
       symlink(). Dove linkpath è un nome di percorso relativo, glibc costruisce un nome di percorso basato  sul
       collegamento simbolico in /proc/self/fd che corrisponde all'argomento newdirfd.

NOTE

       Non viene effettuato nessun controllo su target.

       La  cancellazione  del nome a cui fa riferimento un collegamento simbolico cancellerà il file (a meno che
       esso non abbia altri collegamenti fisici). Se non si desidera questo comportamento usare link(2).

VEDERE ANCHE

       ln(1),  namei(1),   lchown(2),   link(2),   lstat(2),   open(2),   readlink(2),   rename(2),   unlink(2),
       path_resolution(7), symlink(7)

TRADUZIONE

       La   traduzione   italiana   di   questa  pagina  di  manuale  è  stata  creata  da  Goffredo  Baroncelli
       <kreijack@usa.net>, Giulio  Daprelà  <giulio@pluto.it>,  Elisabetta  Galli  <lab@kkk.it>,  Marco  Curreli
       <marcocurreli@tiscali.it> e Giuseppe Sacco <eppesuig@debian.org>

       Questa  traduzione è documentazione libera; leggere la GNU General Public License Versione 3 o successiva
       per le condizioni di copyright. Non ci assumiamo alcuna responsabilità.

       Per segnalare errori nella traduzione  di  questa  pagina  di  manuale  inviare  un  messaggio  a  pluto-
       ildp@lists.pluto.it.

Linux man-pages 6.9.1                             2 maggio 2024                                       symlink(2)