UNLINK(2) | Manuale del programmatore di Linux | UNLINK(2) |
unlink, unlinkat - Rimuove un nome ed eventualmente il file a cui si riferisce
#include <unistd.h>
int unlink(const char *pathname); #include <fcntl.h> /* Definizione delle costanti AT_**/ #include <unistd.h>
int unlinkat(int dirfd, const char *pathname, int flags);
unlinkat():
unlink() cancella un nome dal filesystem. Se il nome è l'ultimo collegamento 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 collegamento 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 collegamento simbolico, il collegamento 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 usarlo.
La chiamata di sistema unlinkat() opera esattamente nello stesso modo di unlink() o rmdir(2) (a seconda che flags includa l'opzione AT_REMOVEDIR) con le differenze di seguito descritte.
Se il nome di percorso dato in pathname è relativo, è interpretato come relativo alla directory a cui il descrittore di file dirfd fa riferimento (piuttosto che relativo alla directory di lavoro corrente del processo chiamante, come fanno unlink() e rmdir(2) per un nome di percorso relativo).
Se il nome di percorso dato in pathname è relativo e dirfd è il valore speciale AT_FDCWD, pathname è interpretato come relativo alla directory di lavoro corrente del processo chiamante (come unlink() e rmdir(2)).
Se il nome di percorso dato in pathname è assoluto, dirfd è ignorato.
flags è una bitmask che può essere specificata o come 0, o con valori di opzione uniti dall'operatore logico OR che controllano l'operazione di unlinkat(). Attualmente è definita solo una di tali opzioni:
Vedere openat(2) per una spiegazione di quello che serve per unlinkat().
In caso di successo restituisce zero. In caso di errore restituisce -1, e errno verrà impostato di conseguenza.
Gli stessi errori che si presentano per unlink() e rmdir(2) si possono presentare anche per unlinkat(). I seguenti errori aggiuntivi possono accadere per unlinkat():
unlinkat() è stato aggiunto a Linux nel kernel 2.6.16; il supporto per le librerie è stato aggiunto a glibc nella versione 2.4.
unlink(): SVr4, 4.3BSD, POSIX.1-2001, POSIX.1-2008.
unlinkat(): POSIX.1-2008.
Su vecchi kernel dove unlinkat() non è disponibile, la funzione wrapper glibc retrocede all'uso di unlink() o rmdir(2). Dove pathname è un nome di percorso relativo, glibc costruisce un nome di percorso basato sul collegamento simbolico in /proc/self/fd che corrisponde all'argomento dirfd.
Alcune ineguatezze nel protocollo sottostante NFS possono causare sparizioni inaspettate di file che sono ancora in uso.
rm(1), unlink(1), chmod(2), link(2), mknod(2), open(2), rename(2), rmdir(2), mkfifo(3), remove(3), path_resolution(7), symlink(7)
Questa pagina fa parte del rilascio 5.10 del progetto Linux man-pages. Una descrizione del progetto, le istruzioni per la segnalazione degli errori, e l'ultima versione di questa pagina si trovano su https://www.kernel.org/doc/man-pages/.
La traduzione italiana di questa pagina di manuale è stata creata da Goffredo Baroncelli <kreijack@usa.net>, Giulio Daprelà <giulio@pluto.it> e Marco Curreli <marcocurreli@tiscali.it>
Questa traduzione è documentazione libera; leggere la GNU General Public License Versione 3 o successiva per le condizioni di copyright. Non ci assumiamo alcuna responsabilità.
Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a pluto-ildp@lists.pluto.it.
15 settembre 2017 | Linux |