NOME¶
unlink - Rimuove un nome ed eventualmente il file a cui si riferisce
SINTASSI¶
#include <unistd.h>
int unlink(const char *pathname);
DESCRIZIONE¶
unlink() cancella un nome dal filesystem. Se il nome è l'ultimo
link ad un file e nessun processo sta usando il file, allora viene cancellato
anche il file stesso, e lo spazio occupato viene liberato.
Se invece il nome è l'ultimo link ad un file, ma il file è
correntemente usato da un processo, il file viene rimosso solo quando viene
chiuso il file descriptor a cui fa riferimento.
Se il nome si riferisce ad un link simbolico, il link viene rimosso.
Se il nome si riferisce ad un socket, una fifo o un dispositivo, il nome viene
rimosso, ma i processi che hanno l'oggetto aperto possono continuare ad
utilizzarlo.
VALORE RESTITUITO¶
In caso di successo viene restituito zero; altrimenti viene restituito il valore
-1, e
errno viene impostato di conseguenza.
ERRORI¶
- EACCES
- L'accesso in scrittura alla directory contenente pathname non
è permesso all'UID effettivo del processo, o una delle directory in
pathname non ha permesso la ricerca. (Vedere anche
path_resolution(7).)
- EBUSY (not on Linux)
- Il file pathname non può essere scollegato poiché
è usato dal sistema o da un altro processo, e l'implementazione
considera questo un errore.
- EFAULT
- pathname punta al di fuori del proprio spazio di indirizzamento
accessibile.
- EIO
- E' avvenuto un errore I/O.
- EISDIR
- pathname fa riferimento a una directory. (Questo è il valore
non-POSIX restituito da Linux a partire da 2.1.132.)
- ELOOP
- Sono stati incontrati troppi link simbolici nel tradurre
pathname.
- ENAMETOOLONG
- pathnameera troppo lungo.
- ENOENT
- Un componente in pathname non esiste o è un link simbolico
scollegato, o pathname è vuoto.
- ENOMEM
- Insufficiente memoria disponibile per il kernel.
- ENOTDIR
- Un componente usato come directory in pathname non è, in
effetti, una directory.
- EPERM
- Il sistema non permette lo scollegamento di directory, o lo scollegamento
di directory richiede privilegi che il processo chiamante non ha. (Questo
è l'errore restituito prescritto da POSIX: come notato in
precedenza, Linux restituisce EISDIR in questo caso).
- EPERM (solo Linux)
- Il filesystem non permette lo scollegamento dei file.
- EPERM o EACCES
- La directory contenente pathname ha lo sticky bit (S_ISVTX)
impostato e l'effettivo UID del processo non è nè l'UID del
file da cancellare nè quello della directory che lo contiene, e il
processo non ha privilegi (Linux non ha capacità CAP_FOWNER
).
- EROFS
- pathname fa riferimento a un file su un filesystem in sola
lettura.
SVr4, 4.3BSD, POSIX.1-2001.
BUG¶
Alcune inpopportunità nel protocollo sottostante NFS possono causare
sparizioni inaspettate di file che sono ancora in uso.
VEDERE ANCHE¶
rm(1),
chmod(2),
link(2),
mknod(2),
open(2),
rename(2),
rmdir(2),
unlinkat(2),
mkfifo(3),
remove(3),
path_resolution(7)
COLOPHON¶
Questa pagina fa parte del rilascio 2.75 del progetto
man-pages di Linux.
Si può trovare una descrizione del progetto, e informazioni su come
riportare bachi, presso
http://www.kernel.org/doc/man-pages/. Per la
traduzione in italiano si può fare riferimento a
http://www.pluto.it/ildp/collaborare/