【 mount/umount系统调用】

 
功能描述:
mount挂上文件系统,umount执行相反的操作。
 
用法: 

显示代码打印1 #include <sys/mount.h> 

2   

3 int mount(const char *source, const char *target, 

4    const char *filesystemtype, unsigned long mountflags, const void *data); 

5   

6 int umount(const char *target); 

7   

8 int umount2(const char *target, int flags);

 

 

参数:  

显示代码打印01 source:将要挂上的文件系统,通常是一个设备名。  

02 target:文件系统所要挂在的目标目录。  

03 filesystemtype:文件系统的类型,可以是"ext2","msdos","proc","nfs","iso9660" 。。。 

04 mountflags:指定文件系统的读写访问标志,可能值有以下 

05   

06 MS_BIND:执行bind挂载,使文件或者子目录树在文件系统内的另一个点上可视。 

07 MS_DIRSYNC:同步目录的更新。 

08 MS_MANDLOCK:允许在文件上执行强制锁。 

09 MS_MOVE:移动子目录树。 

10 MS_NOATIME:不要更新文件上的访问时间。 

11 MS_NODEV:不允许访问设备文件。 

12 MS_NODIRATIME:不允许更新目录上的访问时间。 

13 MS_NOEXEC:不允许在挂上的文件系统上执行程序。 

14 MS_NOSUID:执行程序时,不遵照set-user-ID 和 set-group-ID位。 

15 MS_RDONLY:指定文件系统为只读。 

16 MS_REMOUNT:重新加载文件系统。这允许你改变现存文件系统的mountflag和数据,而无需使用先卸载,再挂上文件系统的方式。 

17 MS_SYNCHRONOUS:同步文件的更新。 

18 MNT_FORCE:强制卸载,即使文件系统处于忙状态。 

19 MNT_EXPIRE:将挂载点标志为过时。

 

 

data:文件系统特有的参数。
   
返回说明:  
成功执行时,返回0。失败返回-1,errno被设为以下的某个值  

显示代码打印01 EACCES:权能不足,可能原因是,路径的一部分不可搜索,或者挂载只读的文件系统时,没有指定 MS_RDONLY 标志。 

02 EAGAIN:成功地将不处于忙状态的文件系统标志为过时。 

03 EBUSY:一. 源文件系统已被挂上。或者不可以以只读的方式重新挂载,因为它还拥有以写方式打开的文件。二. 目标处于忙状态。 

04 EFAULT: 内存空间访问出错。 

05 EINVAL:操作无效,可能是源文件系统超级块无效。 

06 ELOOP :路径解析的过程中存在太多的符号连接。 

07 EMFILE:无需块设备要求的情况下,无用设备表已满。 

08 ENAMETOOLONG:路径名超出可允许的长度。  

09 ENODEV:内核不支持某中文件系统。 

10 ENOENT:路径名部分内容表示的目录不存在。 

11 ENOMEM: 核心内存不足。  

12 ENOTBLK:source不是块设备。  

13 ENOTDIR:路径名的部分内容不是目录。  

14 EPERM : 调用者权能不足。 

15 ENXIO:块主设备号超出所允许的范围。

文章出处:飞诺网(www.diybl.com):http://www.diybl.com/course/3_program/c++/cppsl/200899/141282.html

原文链接: https://www.cnblogs.com/fly-fish/archive/2011/11/04/2236473.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    【 mount/umount系统调用】

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/35741

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 下午12:35
下一篇 2023年2月8日 下午12:36

相关推荐