Linux系统调用-- mount/umount函数详解
【 mount/umount系統(tǒng)調(diào)用】???
????
功能描述:
mount掛上文件系統(tǒng),umount執(zhí)行相反的操作。
??
用法:??
#include <sys/mount.h>
int mount(const char *source, const char *target,
?? const char *filesystemtype, unsigned long mountflags, const void *data);
int umount(const char *target);
int umount2(const char *target, int flags);
參數(shù):???
source:將要掛上的文件系統(tǒng),通常是一個(gè)設(shè)備名。
target:文件系統(tǒng)所要掛在的目標(biāo)目錄。
filesystemtype:文件系統(tǒng)的類型,可以是"ext2","msdos","proc","nfs","iso9660" 。。。
mountflags:指定文件系統(tǒng)的讀寫訪問標(biāo)志,可能值有以下
MS_BIND:執(zhí)行bind掛載,使文件或者子目錄樹在文件系統(tǒng)內(nèi)的另一個(gè)點(diǎn)上可視。
MS_DIRSYNC:同步目錄的更新。
MS_MANDLOCK:允許在文件上執(zhí)行強(qiáng)制鎖。
MS_MOVE:移動(dòng)子目錄樹。
MS_NOATIME:不要更新文件上的訪問時(shí)間。
MS_NODEV:不允許訪問設(shè)備文件。
MS_NODIRATIME:不允許更新目錄上的訪問時(shí)間。
MS_NOEXEC:不允許在掛上的文件系統(tǒng)上執(zhí)行程序。
MS_NOSUID:執(zhí)行程序時(shí),不遵照set-user-ID 和 set-group-ID位。
MS_RDONLY:指定文件系統(tǒng)為只讀。
MS_REMOUNT:重新加載文件系統(tǒng)。這允許你改變現(xiàn)存文件系統(tǒng)的mountflag和數(shù)據(jù),而無需使用先卸載,再掛上文件系統(tǒng)的方式。
MS_SYNCHRONOUS:同步文件的更新。
MNT_FORCE:強(qiáng)制卸載,即使文件系統(tǒng)處于忙狀態(tài)。
MNT_EXPIRE:將掛載點(diǎn)標(biāo)志為過時(shí)。
data:文件系統(tǒng)特有的參數(shù)。
????
返回說明:???
成功執(zhí)行時(shí),返回0。失敗返回-1,errno被設(shè)為以下的某個(gè)值???
EACCES:權(quán)能不足,可能原因是,路徑的一部分不可搜索,或者掛載只讀的文件系統(tǒng)時(shí),沒有指定 MS_RDONLY 標(biāo)志。
EAGAIN:成功地將不處于忙狀態(tài)的文件系統(tǒng)標(biāo)志為過時(shí)。
EBUSY:一. 源文件系統(tǒng)已被掛上。或者不可以以只讀的方式重新掛載,因?yàn)樗€擁有以寫方式打開的文件。二. 目標(biāo)處于忙狀態(tài)。
EFAULT: 內(nèi)存空間訪問出錯(cuò)。
EINVAL:操作無效,可能是源文件系統(tǒng)超級塊無效。
ELOOP :路徑解析的過程中存在太多的符號連接。
EMFILE:無需塊設(shè)備要求的情況下,無用設(shè)備表已滿。
ENAMETOOLONG:路徑名超出可允許的長度。
ENODEV:內(nèi)核不支持某中文件系統(tǒng)。
ENOENT:路徑名部分內(nèi)容表示的目錄不存在。
ENOMEM: 核心內(nèi)存不足。
ENOTBLK:source不是塊設(shè)備。
ENOTDIR:路徑名的部分內(nèi)容不是目錄。
EPERM : 調(diào)用者權(quán)能不足。
ENXIO:塊主設(shè)備號超出所允許的范圍。
總結(jié)
以上是生活随笔為你收集整理的Linux系统调用-- mount/umount函数详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu 下最简明的翻译词典(调用G
- 下一篇: Android研究-linux内核启动到