如何为 REXX 中的 RC 特殊变量赋值?
问问题
2760 次
4 回答
2
/* REXX */
"LISTDS ?" /* Command that sets RC to 12 */
SAY 'RC IS' RC /* RC is 12 */
RC = X /* RC set to X */
SAY 'RC IS' RC /* RC is X */
上述工作,RC 变量没有什么特别之处,只是它会被最后一个命令的返回码覆盖。因此,您至少可以在运行 Zos 的大型机上将其设置为您想要的任何值。
也许您需要在问题中提供更多详细信息,例如它是什么类型的 Rexx(经典或 OO)以及您使用的环境。
于 2010-11-30T15:59:06.003 回答
0
如果要设置方法的返回值,则需要使用“return”命令并使用“result”获取返回码,例如:
/* REXX - program A */
SAY "THIS IS PROG. A WITH RC = 4"
RETURN 4
/* REXX - PROGRAM B */
SAY "CALLING PROGRAM A..."
CALL PROG_A
RC = RESULT
SAY "RC = "RC " RETURN FROM PROGRAM A..."
于 2012-12-28T14:39:12.707 回答
0
SAY 指令将发送屏幕提示或在输出中包含文本。如果您想将 RC 设置为可以通过作业中的后续步骤解释的内容,请尝试:
/* REXX */
setrc = X /* set a variable for RC to X */
exit(setrc)
于 2020-08-03T13:24:57.380 回答
0
正如 Deuian 之前所说,RC 由执行的最后一个命令设置,应提供更多细节以获得准确的答案(环境、目标/任务、批处理/交互等)。在 Zos REXX 上设置 RC 的一个愚蠢的工作方法是创建一个缓冲区:RC 设置为缓冲区计数(因此,如果您需要 RC = 100,您应该创建 100 个缓冲区...),请参阅示例(我不认可这个方法的用法,只是一个猜想)
/* rexx */
'MAKEBUF'
say RC
'MAKEBUF'
say RC
'DROPBUF'
say RC
/* exec output */
1
2
0
***
请注意,前面的代码使缓冲区处于活动状态!(需要另一个 DROPBUF)
于 2017-05-26T08:55:14.000 回答