.\" This manpage is Copyright (C) 1992 Drew Eckhardt; .\" and Copyright (C) 1993 Michael Haardt, Ian Jackson. .\" and Copyright (C) 2006, 2014 Michael Kerrisk .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" Modified 1993-07-24 by Rik Faith .\" Modified 1996-04-26 by Nick Duffek .\" Modified 1996-11-06 by Eric S. Raymond .\" Modified 1997-01-31 by Eric S. Raymond .\" Modified 2004-06-23 by Michael Kerrisk .\" .\" Tradotto da Goffredo Baroncelli Aprile 1998 .\" Aggiornamento a man-pages-2.11 di Giulio Daprelà .\" novembre 2005 .\" Aggiornamento a man-pages-2.38 di Giulio Daprelà - agosto 2006 .\" Aggiornamento a man-pages-2.44 di Giulio Daprelà - giugno 2007 .\" Aggiornamento a man-pages-2.64 di Elisabetta Galli - agosto 2007 .\" Aggiornamento a man-pages-3.53 di Marco Curreli .\" agosto 2013 .\" Aggiornamento a man-pages-3.55 di Marco Curreli - gennaio 2014 .\" Aggiornamento a man-pages-3.61 di Marco Curreli - febbraio 2014 .\" Aggiornamento a man-pages-3.68 di Marco Curreli - giugno 2014 .\" Aggiornamento a man-pages-3.72 di Marco Curreli - settembre 2014 .\" .TH SYMLINK 2 2014-08-19 "Linux" "Linux Programmer's Manual" .SH NOME symlink, symlinkat \- crea un nuovo nome per un file .SH SINTASSI .B #include .sp .BI "int symlink(const char *" target ", const char *" linkpath ); .sp .BR "#include " "/* Definition of AT_* constants */" .B #include .sp .BI "int symlinkat(const char *" target ", int " newdirfd \ ", const char *" linkpath ); .sp .fi .in -4n Macro per test di funzionalità richieste per glibc (vedere .BR feature_test_macros (7)): .in .sp .ad l .BR symlink (): .RS 4 _BSD_SOURCE || _XOPEN_SOURCE\ >=\ 500 || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED || _POSIX_C_SOURCE\ >=\ 200112L .RE .sp .BR symlinkat (): .PD 0 .ad l .RS 4 .TP 4 A partire da glibc 2.10: _XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L .TP Prima di glibc 2.10: _ATFILE_SOURCE .RE .ad b .PD .SH DESCRIZIONE .BR symlink () crea un collegamento simbolico con nome .I linkpath che contiene la stringa .IR 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 .I .. 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 .RB ( S_ISVTX ) impostato. Se .I linkpath esiste .I non verrà sovrascritto. .SS symlinkat() La chiamata di sistema .BR symlinkat () opera esattamente nello stesso modo di .BR symlink (), tranne che per le differenze di seguito descritte. Se il nome di percorso dato in .I linkpath è relativo, è interpretato come relativo alla directory a cui il descrittore di file .I newdirfd fa riferimento (piuttosto che relativo alla directory di lavoro corrente del processo chiamante, come fa .BR symlink () per un nome di percorso relativo). Se .I linkpath è relativo e .I newdirfd è il valore speciale .BR AT_FDCWD , .I linkpath è interpretato come relativo alla directory di lavoro corrente del processo chiamante (come .BR symlink ()). Se .I linkpath è assoluto, .I newdirfd è ignorato. .SH VALORE RESTITUITO In caso di successo viene restituito zero, altrimenti verrà restituito \-1 e .I errno verrà impostato di conseguenza. .SH ERRORI .TP .B EACCES Non è possibile l'accesso in scrittura alla directory contenente .IR linkpath , o una delle directory contenute nel prefisso del percorso di .I linkpath non ha il permesso di ricerca. (Vedere anche .BR path_resolution (7).) .TP .B 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. .TP .B EEXIST .I linkpath esiste già. .TP .B EFAULT .IR target " o " linkpath " puntano fuori dallo spazio di indirizzamento accessibile." .TP .B EIO Si è verificato un errore di I/O. .TP .B ELOOP Si sono incontrati troppi collegamenti simbolici nella risoluzione di .IR linkpath . .TP .B ENAMETOOLONG .IR target " o " linkpath " è troppo lungo." .TP .B ENOENT Una directory contenuta in .I linkpath non esiste o è un collegamento simbolico scollegato, o .I target è una stringa vuota. .TP .B ENOMEM Insufficente memoria disponibile per il kernel. .TP .B ENOSPC Il dispositivo contenente il file non ha spazio per la nuova directory. .TP .B ENOTDIR Un elemento usato come directory in .I linkpath non è, in effetti, una directory. .TP .B EPERM Il filesystem contenente .I linkpath non supporta la creazione di collegamenti simbolici. .TP .B EROFS .I linkpath è contenuto in un filesystem in sola lettura. .PP Altri errori si possono presentare per .BR symlinkat (): .TP .B EBADF .I newdirfd non è un descrittore di file valido. .TP .B ENOENT .I linkpath è un percorso relativo e .IR newdirfd fa riferimento a una directory che è stata eliminata. .TP .B ENOTDIR .I linkpath è relativo e .I newdirfd è un descrittore di file fa riferimento a un file anziché a una directory. .SH VERSIONI .BR symlinkat () è stato aggiunto a Linux nel kernel 2.6.16; il supporto per le librerie è stato aggiunto a glibc nella versione 2.4. .SH CONFORME A .BR symlink (): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008. .\" SVr4 documenta i codici di errore aggiuntivi EDQUOT e ENOSYS. .\" Vedere .\" .BR open (2) .\" re multiple files with the same name, and NFS. .BR symlinkat (): POSIX.1-2008. .SH NOTE Non viene effettuato nessun controllo su .IR 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 .BR link (2). .SS Note per glibc Su vecchi kernel dove .BR symlinkat () non è disponibile, la funzione wrapper glibc retrocede all'uso di .BR symlink (2). Dove .I linkpath è un nome di percorso relativo, glibc costruisce un nome di percorso basato sul collegamento simbolico in .IR /proc/self/fd che corrisponde all'argomento .IR newdirfd . .SH VEDERE ANCHE .BR ln (1), .BR lchown (2), .BR link (2), .BR lstat (2), .BR open (2), .BR readlink (2), .BR rename (2), .BR unlink (2), .BR path_resolution (7), .BR symlink (7) .SH COLOPHON Questa pagina fa parte del rilascio 3.73 del progetto Linux .IR 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 .I man-pages-it v. 3.73, a cura di: ILDP "Italian Linux Documentation Project" \%http://www.pluto.it/ildp .br Per la traduzione in italiano si pu\(`o fare riferimento a http://www.pluto.it/ildp/collaborare/ .br Segnalare eventuali errori di traduzione a .IR ildp@pluto.it