UMOUNT(2) | Linux Programmer's Manual | UMOUNT(2) |
umount, umount2 - ファイルシステムをアンマウントする
#include <sys/mount.h> int umount(const char *target); int umount2(const char *target, int flags);
umount() と umount2() は target にマウントされている (最上位の) ファイルシステムを外す。
ファイルシステムのアンマウントを行うには、 適切な権限 (Linux では CAP_SYS_ADMIN ケーパビリティ) が必要である。
Linux 2.1.116 から、 umount2() システムコールが追加された。これは umount() と同様に target をアンマウントするが、 flags が追加されており、操作時の振る舞いを制御できる。
成功した場合、0 が返される。 失敗した場合、 -1 が返され、 errno に適切な値がセットされる。
以下に示すエラーは、ファイルシステムに依存しないものである。 それぞれのファイルシステムタイプには固有のエラーが存在する場合があり、 独自の動作をすることもある。詳しくは Linux カーネルのソースを見て欲しい。
MNT_DETACH と MNT_EXPIRE はバージョン 2.11 以降の glibc で利用できる。
この関数は Linux 固有の関数であり、移植を考慮したプログラムでは 使用すべきでない。
元々の umount() 関数は umount(device) の形で呼び出され、 ブロックデバイス以外を指定して呼び出すと ENOTBLK を返した。 Linux 0.98p4 で、無名デバイス (anonymous device) に対応するために umount(dir) の形での呼び出しが加えられた。 Linux 2.3.99-pre7 で、umount(device) は削除され、 umount(dir) だけが残された (一つのデバイスを複数の位置にマウント出来るようになったため、 デバイスを指定しただけでは不十分だからである)。
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。
2014-02-26 | Linux |