mntctl 子例程
用途
返回文件系统的安装状态,或改变已安装文件系统的状态。
库
标准 C 库 (libc.a)
语法
描述
mntctl 子例程用于查询虚拟文件系统 (也称为 已安装 文件系统) 的状态。 它还可用于更改已安装的文件系统的状态。
每个虚拟文件系统 (VFS) 都由 vmount 结构描述。 此结构在由 vmount 子例程创建 VFS 时提供。 vmount 结构在 sys/vmount.h 文件中定义。
参数
| 项 | 描述 |
|---|---|
| 命令 | 指定要执行的操作。 有效命令在 sys/vmount.h 文件中定义。 目前,唯一的命令是:
|
| 缓冲区 | 对于 MCTL_QUERY 命令, Buffer 参数指向将包含 vmount 结构数组的数据区。 由于 vmount 结构是可变长度的,因此需要引用每个结构的 vmt_length 字段以确定下一个结构在 Buffer 区域中的开始位置。 对于 MCTL_REMNT 命令, Buffer 参数指向包含传入的 vmount 结构的数据区。 |
| 大小 | 指定 Buffer 参数指向的缓冲区的长度 (以字节计)。 |
返回值
对于 MCTL_QUERY 命令,如果 mntctl 子例程成功, 将返回复制到 Buffer 参数中的 vmount 结构数。 如果 Size 参数指示提供的缓冲区太小,无法容纳所有当前 VFSs 的 vmount 结构, mntctl 子例程将 Buffer 参数的第一个字设置为所需的大小 (以字节计) ,并返回 0 的值。 如果mntctl子程序在其他情况下失败,则返回值为-1,并设置errno 全局变量来指示错误。
对于 MCTL_REMNT 命令,如果mntctl 子例程失败,则返回值为-1,并设置errno全局变量来指示错误。
错误代码
如果下列其中一项或两项为真,那么 mntctl 子例程将失败,并且不会执行请求的操作:
| 项 | 描述 |
|---|---|
| EINVAL | 无法识别 Command 参数,或者 Size 参数不是正值。 |
| Efault | Buffer 参数指向进程的已分配地址空间之外的位置。 |