版权所有 © 2014 tutorialspoint
#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);
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);
umount() 和 umount2() 删除挂载在target上的(最顶层)文件系统的挂载。
挂载和卸载文件系统需要适当的权限(Linux:CAP_SYS_ADMIN 能力)。
从 Linux 2.4 开始,单个文件系统可以在多个挂载点可见,并且可以在同一个挂载点上堆叠多个挂载。
内核支持的filesystemtype 参数的值列在/proc/filesystems 中(例如“minix”、“ext2”、“msdos”、“proc”、“nfs”、“iso9660”等)。当加载适当的模块时,可能会提供其他类型。
mountflags 参数的高 16 位可能包含魔数 0xC0ED(MS_MGC_VAL)(这在 2.4 之前的内核版本中是必需的,但现在不再需要,如果指定则会被忽略),低 16 位包含各种挂载标志(如 <linux/fs.h>(对于 libc4 和 libc5)和 <sys/mount.h>(对于 glibc2)中定义的)。
可以更改以下mountflags:MS_RDONLY、MS_SYNCHRONOUS、MS_MANDLOCK;在内核 2.6.16 之前,还可以更改以下内容:MS_NOATIME 和MS_NODIRATIME;此外,在内核 2.4 之前,还可以更改以下内容:MS_NOSUID、MS_NODEV、MS_NOEXEC。
当将不同的 MS_SYNC 添加到 <mman.h> 时,原始的 MS_SYNC 标志在 1.1.69 中重命名为 MS_SYNCHRONOUS。
在 Linux 2.4 之前,尝试在使用MS_NOSUID 挂载的文件系统上执行 set-user-ID 或 set-group-ID 程序将以EPERM 失败。从 Linux 2.4 开始,在这种情况下,set-user-ID 和 set-group-ID 位只是被静默忽略。
path_resolution (2)
mount (8)
umount (8)
广告