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/