Provided by: manpages-it_3.73-2_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>           /* 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():
           _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED ||
           _POSIX_C_SOURCE >= 200112L

       symlinkat():
           A partire da glibc 2.10:
               _XOPEN_SOURCE >= 700 || _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 è 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(2).  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 3.73 del progetto Linux  man-pages.   Una  descrizione
       del  progetto,  le  istruzioni  per  la  segnalazione degli errori, e l'ultima versione di
       questa pagina si trova su http://www.kernel.org/doc/man-pages/.

       La versione italiana fa parte del pacchetto man-pages-it v. 3.73, 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