symlink

SYMLINK(2)                  Linux Programmer's Manual                 SYMLINK(2)



NOME
       symlink, symlinkat - crea un nuovo nome per un file

SINTASSI
       #include <unistd.h>

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

       #include <fcntl.h>           /* Definition of AT_* constants */ #include
       <unistd.h>

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

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

       symlink():
           _XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L
               || /* Glibc versioni <= 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: viene invece verificato
       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.

VALORE RESTITUITO
       In caso di successo viene restituito zero, altrimenti verrà restituito -1
       e errno verrà impostato di conseguenza.

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).)

       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 un errore di 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.

       ENOMEM Insufficente 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.

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

       EROFS  linkpath è contenuto in un filesystem in sola lettura.

       Altri errori si possono presentare per symlinkat():

       EBADF  newdirfd non è un descrittore di file valido.

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

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

VERSIONI
       symlinkat() è stato aggiunto a Linux nel kernel 2.6.16; il supporto per
       le librerie è stato aggiunto a glibc nella versione 2.4.

CONFORME A
       symlink(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008.

       symlinkat(): POSIX.1-2008.

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).

   Note per 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.

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

COLOPHON
       Questa pagina fa parte del rilascio 4.08 del progetto Linux man-pages.
       Una descrizione del progetto, le istruzioni per la segnalazione degli
       errori, e l'ultima versione di questa pagina si trovano su
       https://www.kernel.org/doc/man-pages/.

       La versione italiana fa parte del pacchetto man-pages-it v. 4.08, a cura
       di: ILDP "Italian Linux Documentation Project" http://www.pluto.it/ildp
       Per la traduzione in italiano si può fare riferimento a
       http://www.pluto.it/ildp/collaborare/
       Segnalare eventuali errori di traduzione a ildp@pluto.it



Linux                              2016-10-08                         SYMLINK(2)