UNLINK(2)

NOME
unlink - Rimuove il nome ed eventualmente il file a cui si riferisce

SINTASSI
#include <unistd.h>

int unlink(const char *pathname);

DESCRIZIONE
unlink() Rimuove un nome dal filesystem. Se il nome č l'ultimo link al file e nessun processo sta usando il file, allora viene rimosso 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 č un socket, una fifo o un device, 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 contine il codice di errore.

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(2).)

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
    pathname era 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 corrente non ha. (Questo č l'errore restituito prescritto da POSIX come notato in precedenza, Linux restituisce EISDIR per questo caso).

EPERM (solo Linux)
    Il filesystem non permette lo scollegamento dei file.

EPERM or EACCES
    La directory contenente pathname ha lo sticky bit (S_ISVTX) attivo 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 č privilegiato (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.

BACHI
Alcune inpopportunitā nel protocollo sottostante NFS possono causare sparizioni inaspettate di file che sono stati usati.

VEDERE ANCHE
rm(1), chmod(2), link(2), mknod(2), open(2), path_resolution(2), rename(2), rmdir(2), unlinkat(2), mkfifo(3), remove(3)