第三章 Caché 命令大全 CLOSE 命令
关闭文件或设备。
重点
- 如果进程的默认设备已关闭,则对该设备的任何后续输出(如错误消息)都会导致进程挂起。在这种情况下,必须显式重新打开默认设备
大纲
CLOSE:pc closearg,...
C:pc closearg,...
其中,closearg是:
device:parameters
参数
- pc 可选-后置条件表达式。
- device 要关闭的设备。
- parameters 可选-用于设置设备特性的一个或多个参数。可以将单个参数指定为带引号的字符串:
CLOSE DEVICE:"D"
。必须指定多个参数,用括号括起来并用冒号分隔。
描述
CLOSE
设备释放指定设备的所有权,可选地设置一个参数,并将其返回到可用设备池。
如果进程不拥有指定的设备,或者如果指定的设备未打开或不存在,则Caché将忽略CLOSE
并返回,而不会发出错误。
参数
pc
可选的后置条件表达式。如果后置条件表达式为TRUE(计算结果为非零数值),则Caché执行CLOSE
命令。如果后置条件表达式为假(计算结果为零),则Caché不执行该命令。
device
要关闭的设备。设备可以是物理设备、TCP连接或顺序文件。指定与相应OPEN
命令中指定的设备ID相同的设备ID(助记符或数字)。
可以指定单个设备ID,也可以将其指定为逗号分隔的设备ID列表。CLOSE
关闭进程当前已打开的所有列出的设备。它会忽略此进程列出的任何不存在或当前未打开的设备。
当前设备的设备ID包含在$IO
特殊变量中。
parameters
关闭指定设备时使用的参数或冒号分隔的参数列表。参数代码不区分大小写。多个参数必须用括号括起来,并用冒号分隔。
可选参数值如下:
代码 | 描述 |
---|---|
"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
设备在登录时建立。)当进程终止时(例如,在暂停之后),其所有打开的设备都会自动关闭并返回到系统。
如果进程的默认设备已关闭,则对该设备的任何后续输出(如错误消息)都会导致进程挂起。在这种情况下,必须显式重新打开默认设备。