The following program illustrates how to declare and call two standard C library functions, "atoi" and "strtol":
int atoi(const char *str) long strtol(const char *str, char **endptr, int base)
Please note the following points:
CALLC: PROCEDURE OPTIONS(MAIN);
DECLARE
ATOI ENTRY(CHARACTER(80))
RETURNS(FIXED BINARY(31))
EXTERNAL('atoi'),
ATOI_2 ENTRY(POINTER BYVALUE)
RETURNS(FIXED BINARY(31))
EXTERNAL('atoi'),
STRTOL ENTRY(CHARACTER(80),
POINTER BYVALUE,
FIXED BINARY(31) BYVALUE)
RETURNS(FIXED BINARY(31))
EXTERNAL('strtol'),
BASE FIXED BINARY(31),
ENDPTR POINTER,
INT FIXED BINARY(31),
LONG FIXED BINARY(31),
STR CHARACTER(80),
STRPTR POINTER;
STR = '2147483647'z;
INT = ATOI(STR);
PUT SKIP LIST(INT);
STRPTR = ADDR(STR);
INT = ATOI_2(STRPTR);
PUT SKIP LIST(INT);
STR = '0x7fffffff'z;
ENDPTR = SYSNULL();
BASE = 16;
LONG = STRTOL(STR, ENDPTR, BASE);
PUT SKIP LIST(LONG);
PUT SKIP LIST(STRTOL('0x7fffffff'z, SYSNULL(), 16));
END CALLC;