syncvfs 子例程

用途

更新文件系统。

语法

#include <fscntl.h>

int syncvfs (vfsName, command)
char *vfsName;
int command;

描述

syncvfs 子例程的行为方式 3 不同,具体取决于指定的粒度。 在每种情况下,都会检查 GFS_SYNCVFS 标志,并在指定的 GFS 和/或 VFS 上调用 VFS_SYNCVFSVFS_SYNC 。 在每种情况下, command 参数都是在未接触的情况下传递的。 这些案例包括:
  • 如果通过 vfsName 参数传递 NULL 指针,那么将采用 FS_SYNCVFS_ALL 级别,并且调用将以与同步调用相似的方式通过每个 GFS 循环。
  • 如果传递 FS_SYNCVFS_FSTYPE ,那么将扫描 GFS 并比较名称。 使用其自己的 GFS 指针和空 VFS 指针调用具有正确名称 (如果存在) 的 GFS。
  • 如果传递了 FS_SYNCVFS_FS ,那么将查找安装点,如果存在,那么将使用 GFS 指针和找到的文件系统的 VFS 指针来调用 VFS_SYNCVFS

参数

描述
vfsName 根据 command 参数的值,这可以是 NULL ,即文件系统类型的名称 (例如, "jfs" , "j2") 或由安装点指定的文件系统的名称 (例如, "/testj2")。
命令 命令是两个选项 (级别和粒度) 的掩码。 粒度可以是下列其中一项:
FS_SYNCVFS_ALL
同步每个文件系统
FS_SYNCVFS_FSTYPE
同步对应于 vfsName 的 VFS 类型的每个文件系统
FS_SYNCVFS_FS
vfsName 上同步特定文件系统
级别可以是下列其中一项:
FS_SYNCVFS_TRY
守护程序十六进制
FS_SYNCVFS_FORCE
用户请求的同步
FS_SYNCVFS_QUIESCE
完整文件系统停顿

返回值

成功完成时, syncvfs 子例程返回 0。 如果不成功,则返回-1并设置errno全局变量。