umount(2) smonta i filesystem

Other Alias

umount2

SINTASSI

#include <sys/mount.h>


int umount(const char *target);

int umount2(const char *target, int opzioni);

DESCRIZIONE

umount() e umount2() rimuovono il filesystem (più alto) montato su target.

Sono necessari privilegi appropriati (Linux: capacità CAP_SYS_ADMIN) per smontare i filesystem.

A partire da Linux 2.1.116 è stata aggiunta la chiamata di sistema umount2() che, come umount(), smonta un target, ma permette opzioni aggiuntive che controllano il comportamento dell'operazione:

MNT_FORCE (a partire da Linux 2.1.116)
Forza lo smontaggio anche se occupato. Questo può causare una perdita di dati. (solo per i mount NFS).
MNT_DETACH (a partire da Linux 2.4.11)
Esegue uno smontaggio lento: rende il punto di mount non disponibile per i nuovi accessi, ed esegue effettivamente lo smontaggio quando il punto di mount smette di essere occupato.
MNT_EXPIRE (a partire da Linux 2.6.8)
Marca il punto di mount come scaduto. Se un punto di mount non è attualmente in uso, allora una chiamata iniziale a umount2() con questa opzione fallisce con l'errore EAGAIN, ma marca il punto di mount come scaduto. Il punto di mount rimane scaduto fino a quando non vi accede nessun processo. Una seconda chiamata umount2() che specifica MNT_EXPIRE smonta un punto di mount scaduto. Questa opzione non può essere specificato con MNT_FORCE o con MNT_DETACH.
UMOUNT_NOFOLLOW (a partire da Linux 2.6.34)
Non elimina il riferimento a target se è un collegamento simbolico. Questa opzione permette di evitare problemi di sicurezza in programmi set-user-ID-root che consentono a utenti senza privilegi di smontare i filesystem.

VALORE RESTITUITO

In caso di successo viene restituito zero. In caso di errore viene restituito -1 , e errno viene impostato di conseguenza.

ERRORI

I valori di errore indicati di seguito sono causati da errori indipendenti dal tipo di filesystem. Ciascun tipo di filesystem può avere i propri errori speciali e il suo comportamento speciale. Vedere il codice sorgente del kernel per dettagli.
EAGAIN
Una chiamata a umount2() che specifica MNT_EXPIRE ha marcato con successo un filesystem non occupato come scaduto.
EBUSY
target non può essere smontato in quanto occupato.
EFAULT
target punta fuori dallo spazio di indirizzamento dell'utente.
EINVAL
target non è un punto di mount.
EINVAL
umount2() è stato chiamato con MNT_EXPIRE e con uno fra MNT_DETACH o MNT_FORCE.
EINVAL (a partire da Linux 2.6.34)
umount2() è stato cchiamato con un valore di opzione non valido in flags.
ENAMETOOLONG
Un nome di percorso è più lungo di MAXPATHLEN.
ENOENT
Un nome di percorso era vuoto o aveva un componente inesistente.
ENOMEM
Il kernel non può allocare una pagina libera in cui copiare nomi di file o dati.
EPERM
Il chiamante non ha i privilegi necessari.

VERSIONI

MNT_DETACH e MNT_EXPIRE sono disponibili in glibc sin dalla versione 2.11.

CONFORME A

Queste funzioni sono specifiche di Linux e non devono essere usate in programmi pensati per essere portabili.

NOTE

La funzione originale umount() era chiamata come umount(device) e restituiva ENOTBLK quando non veniva chiamata da un dispositivo a blocchi. In Linux 0.98p4 fu aggiunta una chiamata umount(dir), per poter supportare dispositivi anonimi. In Linux 2.3.99-pre7 la chiamata umount(device) fu rimossa, lasciando solo umount(dir) (poiché ora i dispositivi possono essere montati in più di un posto, così specificare il dispositivo non è sufficiente).

COLOPHON

Questa pagina fa parte del rilascio 3.73 del progetto Linux man-pages. Una descrizione del progetto, le istruzioni per la segnalazione degli errori, e l'ultima versione di questa pagina si trova su http://www.kernel.org/doc/man-pages/.

La versione italiana fa parte del pacchetto man-pages-it v. 3.73, a cura di: ILDP "Italian Linux Documentation Project" http://www.pluto.it/ildp
Per la traduzione in italiano si può fare riferimento a http://www.pluto.it/ildp/collaborare/
Segnalare eventuali errori di traduzione a [email protected]