mntctl 子例程

用途

返回文件系统的安装状态,或改变已安装文件系统的状态。

标准 C 库 (libc.a)

语法

#include <sys/types.h>
#include <sys/mntctl.h>
#include <sys/vmount.h>

int mntctl ( Command,  Size,  Buffer)
int Command;
int Size;
char *Buffer;

描述

mntctl 子例程用于查询虚拟文件系统 (也称为 已安装 文件系统) 的状态。 它还可用于更改已安装的文件系统的状态。

每个虚拟文件系统 (VFS) 都由 vmount 结构描述。 此结构在由 vmount 子例程创建 VFS 时提供。 vmount 结构在 sys/vmount.h 文件中定义。

参数

描述
命令 指定要执行的操作。 有效命令在 sys/vmount.h 文件中定义。 目前,唯一的命令是:
MCTL_QUERY
查询安装信息。
MCTL_REMNT
使用传递的 vmount 结构中指定的选项重新安装已安装的文件系统。 MCTL_REMNT 命令仅传递到支持重新安装功能的文件系统。 有关更多信息,请参阅 gfsadd 内核服务。
缓冲区 对于 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 参数指向进程的已分配地址空间之外的位置。