bionic (2) symlink.2.gz

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