RC специальная переменная в REXX? - PullRequest
1 голос
/ 30 ноября 2010

как присвоить значение специальной переменной RC в REXX?

Ответы [ 3 ]

2 голосов
/ 30 ноября 2010
/* 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) и какую среду вы используете.

0 голосов
/ 26 мая 2017

Как ранее говорил Деуян, RC устанавливается последней выполненной командой, и для получения точного ответа необходимо предоставить больше подробностей (среда, цель / задача, пакетная / интерактивная и т. Д.).Глупый способ установить RC на Zos REXX - создать буфер: RC установлен на счетчик буферов (поэтому, если вам нужно RC = 100, вы должны создать 100 буферов ...), см. Пример (я не одобряюиспользование этого метода, это всего лишь предположение)

/* rexx */
'MAKEBUF'
say RC
'MAKEBUF'
say RC
'DROPBUF'
say RC
/* exec output */
1
2
0
***

Остерегайтесь того, что предыдущий код оставляет буфер активным!(необходим еще один DROPBUF)

0 голосов
/ 28 декабря 2012

Если вы хотите установить возвращаемое значение вашего метода, вам нужно использовать команду «return» и получить код возврата с «результатом», например:

/* 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..."
...