当前进程的包含最后一个子进程的ID。
DHC-APP>job ##class(PHA.TEST.SpecialVariables).ZB()
DHC-APP>w $zchild
16636
DHC-APP>job ##class(PHA.TEST.SpecialVariables).ZB()
DHC-APP>w $zchild
5412
大纲
$ZCHILD
$ZC
描述
$ZCHILD
包含当前进程使用JOB
命令创建的最后一个子进程的ID。如果进程没有使用JOB
创建子进程,则$ZCHILD
返回0(零)。
在MSM语言模式中,$ZC
特殊变量(拼写如下)有不同的用途。用于确定顺序文件读取中的文件结尾。
不能使用SET
命令修改此特殊变量。尝试这样做会导致<SYNTAX>
错误。
$ZCHILD
与JOB
的成功启动
设置$ZCHILD
并不意味着JOB
已成功启动。它只表示进程已创建,参数已成功传递。
例如,如果使用JOB
生成一个不存在的例程,则$TEST
和$ZCHILD
都会报告作业命令成功,尽管JOB
会立即终止并显示<NOROUTINE>
错误。
MSM语言模式下的$ZC
MSM语言模式支持$ZC
特殊变量的特殊使用。
如果使用%SYSTEM.Process
类的LanguageMode(8)
方法将当前语言模式设置为MSM,则$ZC
特殊变量将在顺序文件读取期间设置。这提供了与MSM $ZC
变量的兼容性。(在所有其他语言模式中,$ZC
不是在文件读取过程中设置的;$ZC
是$ZCHILD
的缩写,具有完全不同的功能。)
在MSM语言模式下,成功的顺序文件读取将设置$ZC=0
。
在MSM语言模式下,文件结束条件设置$ZC=-1
(负1)。未出现<ENDOFFILE>
错误。
但是,Caché $ZC
与MSM $ZC
不同:
如果文件的最后一行没有以分隔符结束,则MSM设置其$ZC=-1
(负1)。Caché不检查分隔符;在本例中,它设置$ZC=0
而不是-1。
如果读取过程中发生I/O错误,MSM会将其$ZC
设置为1。Caché不支持此功能;相反,Caché会发出<read>
错误。