table of contents
UNLINK(2) | Linux Programmer's Manual | UNLINK(2) |
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 file system. 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 descrittore del file 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 (non su 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
- Si è verificato 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.
CONFORME A¶
SVr4, 4.3BSD, POSIX.1-2001.
BUG¶
Alcune inopportunità 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) symlink(7)
COLOPHON¶
Questa pagina fa parte del rilascio 3.01 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/
23 giugno 2004 | Linux |