第十章 使用 ^%ZSTART 和 ^%ZSTOP 例程自定义启动和停止行为 - 每个标签的说明
以下是每个标签的说明
^%ZSSUtil
此例程(和其他例程一样)以Quit
命令开始,因此如果通过
do ^%ZSSUtil
DEFINE 序列在程序主体中提供命名常量。在本例中,它命名为空字符串和操作员消息日志的设备号。
WriteConsole^%ZSSUtil
切入点非常简单。它是为低量输出而设计的,并且是用于调试输出的干扰最小的例程。
它接受单个字符串作为其参数,并将其写入操作员消息日志。然而,它必须注意在其调用过程中保存和恢复当前的$IO
附件。
发送到设备的每个项目都会导致将单独的记录写入消息日志。因此,以下结果导致写入四条记录。
WRITE 1, 2, 3, !
前三个数字由一位数字组成,第四个数字为空行。如果一行上需要多个项,则由调用方负责将它们连接成一个字符串。
WriteLog^%ZSSUtil
该子例程可由 ^%ZSTART
或 ^%ZSTOP
中的任何入口点调用。前两个参数提供报告子例程如何启动所需的信息。第三个参数是要写入日志的名称-值对的 $LIST
。
该入口点首先构建它将使用的文件的名称。为了使日志管理更容易,名称包含输入例程的月份和日期。因此,每当本地时间过午夜时,调用此子例程都会创建一个新文件。因为名称仅在调用时确定。作为参数传递的所有名称-值对都将显示在同一文件中。
一旦创建了名称,$IO
的当前值将被保存以备后用,输出设备将切换到指定的日志文件。用于 OPEN
命令的参数确保文件不存在时将被创建。超时为零表示 IRIS
将尝试打开文件一次,如果不能打开则失败。
打开文件后,代码将遍历名称值对。对于每一对,调用者例程名称和入口点名称都写在名称-值对的行中。 (如果值部分为空字符串,则只写名称。)每一对在日志文件中占一行。每行的前三个值对齐,因此它们出现在列中以便于扫描。
写入所有对后,关闭日志文件,恢复先前的值 $IO
并将控制权返回给调用者。
网友评论