【 mount/umount系统调用】
功能描述:
mount挂上文件系统,umount执行相反的操作。
用法:
3 |
int mount( const char *source, const char *target, |
4 |
const char *filesystemtype,
unsigned long mountflags, const void *data); |
6 |
int umount( const char *target); |
8 |
int umount2( const char *target, int flags); |
参数:
01 |
source:将要挂上的文件系统,通常是一个设备名。 |
03 |
filesystemtype:文件系统的类型,可以是 "ext2" , "msdos" , "proc" , "nfs" , "iso9660" 。。。 |
04 |
mountflags:指定文件系统的读写访问标志,可能值有以下 |
06 |
MS_BIND:执行bind挂载,使文件或者子目录树在文件系统内的另一个点上可视。 |
08 |
MS_MANDLOCK:允许在文件上执行强制锁。 |
10 |
MS_NOATIME:不要更新文件上的访问时间。 |
12 |
MS_NODIRATIME:不允许更新目录上的访问时间。 |
13 |
MS_NOEXEC:不允许在挂上的文件系统上执行程序。 |
14 |
MS_NOSUID:执行程序时,不遵照 set -user -ID 和 set -group -ID 位。 |
16 |
MS_REMOUNT:重新加载文件系统。这允许你改变现存文件系统的mountflag和数据,而无需使用先卸载,再挂上文件系统的方式。 |
17 |
MS_SYNCHRONOUS:同步文件的更新。 |
18 |
MNT_FORCE:强制卸载,即使文件系统处于忙状态。 |
data:文件系统特有的参数。
返回说明:
成功执行时,返回0。失败返回-1,errno被设为以下的某个值
01 |
EACCES:权能不足,可能原因是,路径的一部分不可搜索,或者挂载只读的文件系统时,没有指定
MS_RDONLY 标志。 |
02 |
EAGAIN:成功地将不处于忙状态的文件系统标志为过时。 |
03 |
EBUSY:一.
源文件系统已被挂上。或者不可以以只读的方式重新挂载,因为它还拥有以写方式打开的文件。二. 目标处于忙状态。 |
05 |
EINVAL:操作无效,可能是源文件系统超级块无效。 |
06 |
ELOOP
:路径解析的过程中存在太多的符号连接。 |
07 |
EMFILE:无需块设备要求的情况下,无用设备表已满。 |
08 |
ENAMETOOLONG:路径名超出可允许的长度。 |
10 |
ENOENT:路径名部分内容表示的目录不存在。 |