Provided by: manpages-it-dev_4.15.0-9_all bug

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>           /* 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
           Before 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.

       See openat(2)  for an explanation of the need for 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.

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

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)

COLOPHON

       Questa pagina fa parte del rilascio 5.13 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/.

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> e
       Marco Curreli <marcocurreli@tiscali.it>

       Questa traduzione è documentazione libera; leggere la GNU General Public License  Versione
       3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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⟩.