关闭文件或设备。
其中,closearg是:
device:parametersCLOSE设备释放指定设备的所有权,可选地设置一个参数,并将其返回到可用设备池。
如果进程不拥有指定的设备,或者如果指定的设备未打开或不存在,则Caché将忽略CLOSE并返回,而不会发出错误。
可选的后置条件表达式。如果后置条件表达式为TRUE(计算结果为非零数值),则Caché执行CLOSE命令。如果后置条件表达式为假(计算结果为零),则Caché不执行该命令。
要关闭的设备。设备可以是物理设备、TCP连接或顺序文件。指定与相应OPEN命令中指定的设备ID相同的设备ID(助记符或数字)。
可以指定单个设备ID,也可以将其指定为逗号分隔的设备ID列表。CLOSE关闭进程当前已打开的所有列出的设备。它会忽略此进程列出的任何不存在或当前未打开的设备。
当前设备的设备ID包含在$IO特殊变量中。
关闭指定设备时使用的参数或冒号分隔的参数列表。参数代码不区分大小写。多个参数必须用括号括起来,并用冒号分隔。
可选参数值如下:
代码描述“D”关闭并删除顺序文件。也可以指定为/DEL、/DEL=1、/DELETE或/DELETE=1。“R”:newname关闭并重命名顺序文件。也可以指定为/REN=newname或/rename=newname。“K”在Caché级别关闭,但不在操作系统级别关闭。仅在非Windows系统上使用。如果指定的参数无效,Close仍会关闭设备。
在以下UNIX®示例中,Close命令将关闭设备C(/dev/tty02),但前提是该设备不是当前设备。后置条件使用$IO特殊变量检查当前设备。
CloseDevC SET C="/dev/tty02" OPEN C ; ... CLOSE:$IO'=C C进程使用OPEN命令获取设备所有权,并使用USE命令使其处于活动状态。如果关闭的设备是活动(即当前)设备,则默认I/O设备将成为当前设备。(默认I/O设备在登录时建立。)当进程终止时(例如,在暂停之后),其所有打开的设备都会自动关闭并返回到系统。
如果进程的默认设备已关闭,则对该设备的任何后续输出(如错误消息)都会导致进程挂起。在这种情况下,必须显式重新打开默认设备。