Provided by: manpages-it_2.80-5_all bug

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.

CONFORME A

       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/