Predefined variables make symbolic references easier and more consistent.
Instead of using a numeric value, you can use the predefined variable
that will derive that numeric value. The following list shows the
data type and numeric value for each predefined variable. Each variable
is discussed in the section about the syscall command with which it
can be used. Most variable names correspond to the POSIX-defined names
in the XL C/C++ runtime library include files (also known as header
files).
When the REXX program is initialized and the SYSCALL environment
is established, the predefined variables are set up. If you call an
internal subroutine that uses the PROCEDURE instruction to protect
existing variables by making them unknown to that subroutine (or function),
the predefined variables also become unknown. If some of the predefined
variables are needed, you can either list them on the PROCEDURE EXPOSE
instruction or issue another
syscalls('ON') to
reestablish the predefined variables. The predefined variables are
automatically set up for external functions and subroutines. For example:
subroutine: procedure
junk = syscalls('ON')
parse arg dir
'readdir (dir) dir. stem.'
Except for the error numbers and signal numbers, all variables
contain an underscore. This is also true of most of the POSIX names
in the C include files.
The data types are as follows:
- Bin
- Binary: 2-byte hexadecimal format
- Char
- Character
- Dec
- Decimal
- Hex
- Hexadecimal: 4-byte hexadecimal format
- Tok
- Token
- Oct
- Octal
Table 1 lists the predefined variables
along with their data type and numeric value.
Table 1. List of predefined variablesVariable |
Data type |
Numeric value |
---|
AUD_FEXEC |
Dec |
512 |
AUD_FREAD |
Dec |
33554432 |
AUD_FWRITE |
Dec |
131072 |
AUD_SEXEC |
Dec |
256 |
AUD_SREAD |
Dec |
16777216 |
AUD_SWRITE |
Dec |
65536 |
E2BIG |
Hex |
91 |
EACCES |
Hex |
6F |
EAGAIN |
Hex |
70 |
EBADF |
Hex |
71 |
EBUSY |
Hex |
72 |
ECHILD |
Hex |
73 |
EDEADLK |
Hex |
74 |
EDOM |
Hex |
01 |
EEXIST |
Hex |
75 |
EFAULT |
Hex |
76 |
EFBIG |
Hex |
77 |
EILSEQ |
Hex |
93 |
EINTR |
Hex |
78 |
EINVAL |
Hex |
79 |
EIO |
Hex |
7A |
EISDIR |
Hex |
7B |
ELOOP |
Hex |
92 |
EMFILE |
Hex |
7C |
EMLINK |
Hex |
7D |
EMVSBADCHAR |
Hex |
A0 |
EMVSCATLG |
Hex |
99 |
EMVSCVAF |
Hex |
98 |
EMVSDYNALC |
Hex |
97 |
EMVSERR |
Hex |
9D |
EMVSINITIAL |
Hex |
9C |
EMVSNORTL |
Hex |
A7 |
EMVSNOTUP |
Hex |
96 |
EMVSPARM |
Hex |
9E |
EMVSPATHOPTS |
Hex |
A6 |
EMVSPFSFILE |
Hex |
9F |
EMVSPFSPERM |
Hex |
A2 |
EMVSSAF2ERR |
Hex |
A4 |
EMVSSAFEXTRERR |
Hex |
A3 |
EMVSTODNOTSET |
Hex |
A5 |
ENAMETOOLONG |
Hex |
7E |
ENFILE |
Hex |
7F |
ENODEV |
Hex |
80 |
ENOENT |
Hex |
81 |
ENOEXEC |
Hex |
82 |
ENOLCK |
Hex |
83 |
ENOMEM |
Hex |
84 |
ENOSPC |
Hex |
85 |
ENOSYS |
Hex |
86 |
ENOTDIR |
Hex |
87 |
ENOTEMPTY |
Hex |
88 |
ENOTTY |
Hex |
89 |
ENXIO |
Hex |
8A |
EPERM |
Hex |
8B |
EPIPE |
Hex |
8C |
ERANGE |
Hex |
02 |
EROFS |
Hex |
8D |
ESC_A |
Hex |
2F |
ESC_B |
Hex |
16 |
ESC_F |
Hex |
0C |
ESC_N |
Hex |
15 |
ESC_R |
Hex |
0D |
ESC_T |
Hex |
05 |
ESC_V |
Hex |
0B |
ESPIPE |
Hex |
8E |
ESRCH |
Hex |
8F |
EXDEV |
Hex |
90 |
F_OK |
Dec |
8 |
F_RDLCK |
Dec |
1 |
F_UNLCK |
Dec |
3 |
F_WRLCK |
Dec |
2 |
GR_GID |
Dec |
2 |
GR_MEM |
Char |
4 |
GR_MEMBERS |
Dec |
3 |
GR_NAME |
Char |
1 |
IPC_CREAT |
Hex |
1 |
IPC_EXCL |
Hex |
2 |
IPC_MEGA |
Hex |
4 |
IPC_SHAREAS |
Hex |
32 |
IPC_RCVTYPEPID |
Hex |
4 |
IPC_SNDTYPEPID |
Hex |
8 |
L_LEN |
Dec |
4 |
L_PID |
Dec |
5 |
L_START |
Dec |
3 |
L_TYPE |
Dec |
1 |
L_WHENCE |
Dec |
2 |
MNT_ASYNCHMOUNT |
Dec |
130 |
MNT_FILEACTIVE |
Dec |
0 |
MNT_FILEDEAD |
Dec |
1 |
MNT_FILEDRAIN |
Dec |
4 |
MNT_FILEFORCE |
Dec |
8 |
MNT_FILEIMMED |
Dec |
16 |
MNT_FILENORM |
Dec |
32 |
MNT_FILERESET |
Dec |
2 |
MNT_IMMEDTRIED |
Dec |
64 |
MNT_MODE_AUNMOUNT |
Dec |
64 |
MNT_MODE_CLIENT |
Dec |
32 |
MNT_MODE_EXPORT |
Dec |
4 |
MNT_MODE_NOAUTOMOVE |
Dec |
16 |
MNT_MODE_NOSEC |
Dec |
8 |
MNT_MODE_NOSETID |
Dec |
2 |
MNT_MODE_RDONLY |
Dec |
1 |
MNT_MODE_RDWR |
Dec |
0 |
MNT_MODE_SECACL |
Dec |
128 |
MNT_MOUNTINPROGRESS |
Dec |
129 |
MNT_QUIESCED |
Dec |
128 |
MNTE_AGGNAME |
Char |
30 |
MNTE_BYTESREADHW |
Dec |
25 |
MNTE_BYTESREADLW |
Dec |
26 |
MNTE_BYTESWRITTENHW |
Dec |
27 |
MNTE_BYTESWRITTENLW |
Dec |
28 |
MNTE_DD |
Char |
4 |
MNTE_DEV |
Dec |
3 |
MNTE_DIRIBC |
Dec |
22 |
MNTE_FILETAG |
Char |
29 |
MNTE_FROMSYS |
Char |
18 |
MNTE_FSNAME |
Char |
6 |
MNTE_FSTYPE |
Char |
5 |
MNTE_MODE |
Dec |
2 |
MNTE_PARDEV |
Dec |
9 |
MNTE_PARM |
Char |
13 |
MNTE_PATH |
Char |
7 |
MNTE_PFSSTATUSEXCP |
Char |
34 |
MNTE_PFSSTATUSNORMAL |
Char |
33 |
MNTE_QJOBNAME |
Char |
11 |
MNTE_QPID |
Dec |
12 |
MNTE_QSYSNAME |
Char |
16 |
MNTE_READCT |
Dec |
20 |
MNTE_READIBC |
Dec |
23 |
MNTE_RFLAGS |
Dec |
14 |
MNTE_ROOTINO |
Dec |
10 |
MNTE_ROSECLABEL |
Char |
32 |
MNTE_STATUS |
Dec |
8 |
MNTE_STATUS2 |
Dec |
15 |
MNTE_SUCCESS |
Dec |
19 |
MNTE_SYSLIST |
Char |
31 |
MNTE_SYSNAME |
Char |
17 |
MNTE_TYPE |
Dec |
1 |
MNTE_WRITECT |
Dec |
21 |
MNTE_WRITEIBC |
Dec |
24 |
MSG_UID |
Dec |
1 |
MSG_GID |
Dec |
2 |
MSG_CUID |
Dec |
3 |
MSG_CGID |
Dec |
4 |
MSG_TYPE |
Dec |
5 |
MSG_MODE |
Oct |
6 |
MSG_QNUM |
Dec |
7 |
MSG_QBYTES |
Dec |
8 |
MSG_LSPID |
Dec |
9 |
MSG_LRPID |
Dec |
10 |
MSG_STIME |
Dec |
11 |
MSG_RTIME |
Dec |
12 |
MSG_CTIME |
Dec |
13 |
MSGBUF_MTIME |
Dec |
1 |
MSGBUF_UID |
Dec |
2 |
MSGBUF_GID |
Dec |
3 |
MSGBUF_PID |
Dec |
4 |
MTM_DRAIN |
Dec |
2 |
MTM_FORCE |
Dec |
4 |
MTM_IMMED |
Dec |
8 |
MTM_NORMAL |
Dec |
16 |
MTM_NOSUID |
Dec |
262144 |
MTM_RDONLY |
Dec |
128 |
MTM_RDWR |
Dec |
64 |
MTM_REMOUNT |
Dec |
65536 |
MTM_RESET |
Dec |
1 |
MTM_SYNCHONLY |
Dec |
131072 |
O_APPEND |
Dec |
8 |
O_CREAT |
Dec |
128 |
O_EXCL |
Dec |
64 |
O_NOCITY |
Dec |
32 |
O_NONBLOCK |
Dec |
4 |
O_RDONLY |
Dec |
2 |
O_RDWR |
Dec |
3 |
O_SYNC |
Dec |
256 |
O_TRUNC |
Dec |
16 |
O_WRONLY |
Dec |
1 |
PC_ACL |
Dec |
10 |
PC_ACL_MAX |
Dec |
11 |
PC_LINK_MAX |
Dec |
2 |
PC_MAX_CANON |
Dec |
3 |
PC_MAX_INPUT |
Dec |
4 |
PC_NAME_MAX |
Dec |
5 |
PC_PATH_MAX |
Dec |
7 |
PC_PIPE_BUF |
Dec |
8 |
PC_POSIX_CHOWN_RESTRICTED |
Dec |
1 |
PC_POSIX_NO_TRUNC |
Dec |
6 |
PC_POSIX_VDISABLE |
Dec |
9 |
PS_CHILD |
Char |
W |
PS_CMD |
Dec |
19 |
PS_CONTTY |
Dec |
17 |
PS_EGID |
Dec |
10 |
PS_EUID |
Dec |
7 |
PS_FGPID |
Dec |
6 |
PS_FORK |
Char |
X |
PS_FREEZE |
Char |
E |
PS_MAXVNODES |
Dec |
25 |
PS_MSGRCV |
Char |
A |
PS_MSGSND |
Char |
B |
PS_PATH |
Char |
18 |
PS_PAUSE |
Char |
G |
PS_PGPID |
Dec |
5 |
PS_PID |
Dec |
2 |
PS_PPID |
Dec |
3 |
PS_QUIESCE |
Char |
Q |
PS_RGID |
Dec |
11 |
PS_RUID |
Dec |
8 |
PS_RUN |
Char |
R |
PS_SEMWT |
Char |
D |
PS_SERVERFLAGS |
Dec |
27 |
PS_SERVERNAME |
Dec |
22 |
PS_SERVERTYPE |
Dec |
21 |
PS_SGID |
Dec |
12 |
PS_SID |
Dec |
4 |
PS_SIZE |
Dec |
13 |
PS_SLEEP |
Char |
S |
PS_STARTTIME |
Dec |
14 |
PS_STAT |
Dec |
1 |
PS_STATE |
Char |
20 |
PS_SUID |
Dec |
9 |
PS_SYSTIME |
Dec |
16 |
PS_USERTIME |
Dec |
15 |
PS_VNODECOUNT |
Dec |
26 |
PS_WAITC |
Char |
C |
PS_WAITF |
Char |
F |
PS_WAITO |
Char |
K |
PS_ZOMBIE |
Char |
Z |
PS_ZOMBIE2 |
Char |
L |
PW_DIR |
Char |
4 |
PW_GID |
Dec |
3 |
PW_NAME |
Char |
1 |
PW_SHELL |
Char |
5 |
PW_UID |
Dec |
2 |
R_OK |
Dec |
4 |
RLIMIT_AS |
Dec |
5 |
RLIMIT_CORE |
Dec |
4 |
RLIMIT_CPU |
Dec |
0 |
RLIMIT_FSIZE |
Dec |
1 |
RLIMIT_INFINITY |
Dec |
2147483647 |
RLIMIT_NOFILE |
Dec |
6 |
S_FFBINARY |
Dec |
1 |
S_FFCR |
Dec |
3 |
S_FFCRLF |
Dec |
5 |
S_FFCRNL |
Dec |
7 |
S_FFLF |
Dec |
4 |
S_FFLFCR |
Dec |
6 |
S_FFNA |
Dec |
0 |
S_FFNL |
Dec |
2 |
S_FFRECORD |
Dec |
8 |
S_ISCHR |
Dec |
2 |
S_ISDIR |
Dec |
1 |
S_ISFIFO |
Dec |
4 |
S_ISREG |
Dec |
3 |
S_ISSYM |
Dec |
5 |
SA_NOCLDSTOP |
Dec |
32768 |
SA_NOCLDWAIT |
Dec |
512 |
SA_NORESETHAND |
Dec |
4096 |
SC_2_CHAR_TERM |
Dec |
12 |
SC_ARG_MAX |
Dec |
1 |
SC_CHILD_MAX |
Dec |
2 |
SC_CLK_TCK |
Dec |
3 |
SC_JOB_CONTROL |
Dec |
4 |
SC_NGROUPS_MAX |
Dec |
5 |
SC_OPEN_MAX |
Dec |
6 |
SC_SAVED_IDS |
Dec |
7 |
SC_TREAD_TASKS_MAX_NP |
Dec |
11 |
SC_THREADS_MAP_NP |
Dec |
13 |
SC_TZNAME_MAX |
Dec |
9 |
SC_VERSION |
Dec |
10 |
SE_ERRNO |
Dec |
1 |
SE_REASON |
Dec |
2 |
SE_ACTION |
Dec |
3 |
SE_MODID |
Dec |
4 |
SEEK_CUR |
Dec |
1 |
SEEK_END |
Dec |
2 |
SEEK_SET |
Dec |
0 |
SHM_UID |
Hex |
1 |
SHM_GID |
Hex |
2 |
SHM_CUID |
Hex |
3 |
SHM_CGID |
Hex |
4 |
SHM_TYPE |
Hex |
5 |
SHM_MODE |
Oct |
6 |
SHM_SEGSZ |
Hex |
7 |
SHM_LPID |
Hex |
8 |
SHM_CPID |
Hex |
9 |
SHM_ATIME |
Hex |
10 |
SHM_DTIME |
Hex |
11 |
SHM_CTIME |
Hex |
12 |
SIG_BLOCK |
Dec |
0 |
SIG_CAT |
Dec |
10 |
SIG_DFL |
Dec |
0 |
SIG_IGN |
Dec |
1 |
SIG_QRY |
Dec |
11 |
SIG_SETMASK |
Dec |
2 |
SIG_UNBLOCK |
Dec |
1 |
SIGABND |
Dec |
18 |
SIGABRT |
Dec |
3 |
SIGALRM |
Dec |
14 |
SIGBUS |
Dec |
10 |
SIGCHLD |
Dec |
20 |
SIGCONT |
Dec |
19 |
SIGDANGER |
Dec |
33 |
SIGFPE |
Dec |
8 |
SIGHUP |
Dec |
1 |
SIGILL |
Dec |
4 |
SIGINT |
Dec |
2 |
SIGIO |
Dec |
23 |
SIGIOERR |
Dec |
27 |
SIGKILL |
Dec |
9 |
SIGPIPE |
Dec |
13 |
SIGPOLL |
Dec |
5 |
SIGPROF |
Dec |
32 |
SIGQUIT |
Dec |
24 |
SIGSEGV |
Dec |
11 |
SIGSTOP |
Dec |
7 |
SIGSYS |
Dec |
12 |
SIGTERM |
Dec |
15 |
SIGTRAP |
Dec |
26 |
SIGTSTP |
Dec |
25 |
SIGTTIN |
Dec |
21 |
SIGTTOU |
Dec |
22 |
SIGUSR1 |
Dec |
16 |
SIGUSR2 |
Dec |
17 |
SIGURG |
Dec |
6 |
SIGVTALRM |
Dec |
31 |
SIGXCPU |
Dec |
29 |
SIGXFSZ |
Dec |
30 |
ST_AAUDIT |
Dec |
16 |
ST_ACCESSACL |
Dec |
29 |
ST_ATIME |
Dec |
9 |
ST_AUDITID |
Char |
20 |
ST_BLKSIZE |
Dec |
18 |
ST_BLOCKS |
Dec |
22 |
ST_CCSID |
Char |
21 |
ST_CRTIME |
Dec |
19 |
ST_CTIME |
Dec |
11 |
ST_DEV |
Hex |
4 |
ST_DMODELACL |
Dec |
31 |
ST_EXTLINK |
Dec |
24 |
ST_FID |
Bin |
27 |
ST_FILEFMT |
Dec |
28 |
ST_FMODELACL |
Dec |
30 |
ST_GENVALUE |
Bin |
25 |
ST_GID |
Dec |
7 |
ST_INO |
Hex |
3 |
ST_MAJOR |
Dec |
14 |
ST_MINOR |
Dec |
15 |
ST_MODE |
Oct |
2 |
ST_MTIME |
Dec |
10 |
ST_NLINK |
Dec |
5 |
ST_RTIME |
Dec |
26 |
ST_SECLABEL |
Dec |
32 |
ST_SETGID |
Dec |
13 |
ST_SETUID |
Dec |
12 |
ST_SIZE |
Dec |
8 |
ST_STICKY |
Dec |
23 |
ST_TYPE |
Dec |
1 |
ST_UAUDIT |
Dec |
17 |
ST_UID |
Dec |
6 |
STFS_AVAIL |
Dec |
4 |
STFS_BFREE |
Dec |
6 |
STFS_BLOCKSIZE |
Dec |
1 |
STFS_FAVAIL |
Dec |
9 |
STFS_FFREE |
Dec |
8 |
STFS_FILES |
Dec |
7 |
STFS_FRSIZE |
Dec |
5 |
STFS_FSID |
Dec |
10 |
STFS_INUSE |
Dec |
3 |
STFS_INVARSEC |
Dec |
15 |
STFS_NAMEMAX |
Dec |
13 |
STFS_NOSEC |
Dec |
16 |
STFS_NOSUID |
Dec |
12 |
STFS_RDONLY |
Dec |
11 |
STFS_TOTAL |
Dec |
2 |
TM_HOUR |
Dec |
1 |
TM_ISDST |
Dec |
9 |
TM_MDAY |
Dec |
5 |
TM_MIN |
Dec |
2 |
TM_MON |
Dec |
4 |
TM_SEC |
Dec |
3 |
TM_WDAY |
Dec |
8 |
TM_YDAY |
Dec |
7 |
TM_YEAR |
Dec |
6 |
TMS_CSTIME |
Dec |
4 |
TMS_CUTIME |
Dec |
3 |
TMS_STIME |
Dec |
2 |
TMS_UTIME |
Dec |
1 |
U_MACHINE |
Char |
5 |
U_NODENAME |
Char |
2 |
U_RELEASE |
Char |
3 |
U_SYSNAME |
Char |
1 |
U_VERSION |
Char |
4 |
VL_CLIENTPID |
Dec |
7 |
VL_CLIENTTID |
Char |
9 |
VL_DOSMODE |
Char |
13 |
VL_DOSACCESS |
Char |
14 |
VL_LOCK |
Dec |
3 |
VL_LOCKERTOK |
Tok |
8 |
VL_LOCKWAIT |
Dec |
4 |
VL_OBJCLASS |
Char |
10 |
VL_OBJID |
Char |
11 |
VL_OBJTOK |
Tok |
12 |
VL_PURGE |
Dec |
7 |
VL_QUERY |
Dec |
6 |
VL_REGLOCKER |
Dec |
1 |
VL_SERVERPID |
Dec |
6 |
VL_UNREGLOCKER |
Dec |
2 |
VL_UNLOCK |
Dec |
5 |
W_CONTINUED |
Dec |
3 |
W_EXITSTATUS |
Dec |
4 |
W_IFEXITED |
Dec |
3 |
W_IFSIGNALED |
Dec |
5 |
W_IFSTOPPED |
Dec |
7 |
W_NOHANG |
Dec |
1 |
W_OK |
Dec |
2 |
W_STAT3 |
Dec |
1 |
W_STAT4 |
Dec |
2 |
W_STOPSIG |
Dec |
8 |
W_TERMSIG |
Dec |
6 |
W_UNTRACED |
Dec |
2 |
X_OK |
Dec |
1 |