Here my example I was referring to initially..
Execution JCL:
//REXXC JOB SYSTEMS,CLASS=A,MSGCLASS=X,
// MSGLEVEL=(1,1),REGION=4096K,NOTIFY=&SYSUID
//STEP1 EXEC PGM=TESTR1,PARM=('USER AA1122BB')
//STEPLIB DD DISP=SHR,DSN=SFORD.LINKLIB
//SYSEXEC DD DISP=SHR,DSN=IDF.CLISTLIB
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSTSIN DD DUMMY
/*
-----------------------------
C Program
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct IRXJCL_type
{
short int arg_length;
char argument[22];
} IRXJCL_type;
IRXJCL_type this_param;
IRXJCL_type* param_ptr;
main(int argc, char *argv[])
{
char dest[22];
int i = 1;
int s1;
memset(this_param.argument,'',sizeof(this_param.argument));
strcpy(dest,"IDFRACFC ");
strcat(dest,argv[1]);
strcat(dest," ");
strcat(dest,argv[2]);
strcat(dest," ");
strcpy(this_param.argument,dest);
puts(this_param.argument);
}
Output of Execution:
J E S 2 J O B L O G -- S Y S T E M A D C D -- N O
08.13.47 JOB00170 ---- WEDNESDAY, 05 SEP 2012 ----
08.13.47 JOB00170 IRR010I USERID SFORD IS ASSIGNED TO THIS JOB.
08.13.47 JOB00170 ICH70001I SFORD LAST ACCESS AT 08:09:12 ON WEDNESDAY, SEPT
08.13.47 JOB00170 $HASP373 REXXC STARTED - INIT 1 - CLASS A - SYS ADCD
08.13.47 JOB00170 IEF403I REXXC - STARTED - TIME=08.13.47
08.13.48 JOB00170 IEF404I REXXC - ENDED - TIME=08.13.48
08.13.48 JOB00170 $HASP395 REXXC ENDED
------ JES2 JOB STATISTICS ------
05 SEP 2012 JOB EXECUTION DATE
10 CARDS READ
51 SYSOUT PRINT RECORDS
0 SYSOUT PUNCH RECORDS
3 SYSOUT SPOOL KBYTES
0.01 MINUTES EXECUTION TIME
// MSGLEVEL=(1,1),REGION=4096K,NOTIFY=&SYSUID
IEFC653I SUBSTITUTION JCL - SYSTEMS,CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),
2 //STEP1 EXEC PGM=TESTR1,PARM=('USER AA1122BB')
3 //STEPLIB DD DISP=SHR,DSN=SFORD.LINKLIB
4 //SYSEXEC DD DISP=SHR,DSN=IDF.PROD.ORA9421.CLISTLIB
5 //SYSTSPRT DD SYSOUT=*
6 //SYSPRINT DD SYSOUT=*
7 //SYSUDUMP DD SYSOUT=*
8 //SYSTSIN DD DUMMY
/*
ICH70001I SFORD LAST ACCESS AT 08:09:12 ON WEDNESDAY, SEPTEMBER 5, 2012
IEF236I ALLOC. FOR REXXC STEP1
IEF237I 0A82 ALLOCATED TO STEPLIB
IEF237I 0AA1 ALLOCATED TO SYSEXEC
IEF237I JES2 ALLOCATED TO SYSTSPRT
IEF237I JES2 ALLOCATED TO SYSPRINT
IEF237I JES2 ALLOCATED TO SYSUDUMP
IEF237I DMY ALLOCATED TO SYSTSIN
IEF142I REXXC STEP1 - STEP WAS EXECUTED - COND CODE 0000
IEF285I SFORD.LINKLIB KEPT
IEF285I VOL SER NOS= ZCSYS1.
IEF285I IDF.PROD.ORA9421.CLISTLIB KEPT
IEF285I VOL SER NOS= IDF001.
IEF285I SFORD.REXXC.JOB00170.D0000101.? SYSOUT
IEF285I SFORD.REXXC.JOB00170.D0000102.? SYSOUT
IEF285I SFORD.REXXC.JOB00170.D0000103.? SYSOUT
IEF373I STEP/STEP1 /START 2012249.0813
IEF032I STEP/STEP1 /STOP 2012249.0813
CPU: 0 HR 00 MIN 00.26 SEC SRB: 0 HR 00 MIN 00.00 SEC
VIRT: 60K SYS: 476K EXT: 8264K SYS: 11340K
IEF375I JOB/REXXC /START 2012249.0813
IEF033I JOB/REXXC /STOP 2012249.0813
CPU: 0 HR 00 MIN 00.26 SEC SRB: 0 HR 00 MIN 00.00 SEC
IDFRACFC USER AA1122BB
Without the memset in this example the C code fails. I am not the C heavy a lot
of folks are here,
but the ILC manual pretty much shows the same thing in examples going from C ->
Cobol -> C ..
Scott J Ford
Software Engineer
http://www.identityforge.com/
________________________________
From: "McKown, John" <[email protected]>
To: [email protected]
Sent: Wednesday, September 5, 2012 8:34 AM
Subject: Re: The IBM zEnterprise EC12 announcment
What about
char *s6="wombat";
?
This makes s6 a pointer to the characters {'w','o','m','b','a','t','\0'}. There
is not really any difference between char s6[] and char *s6. You can still do
s6[0] which is the same as *s6. And s6[1] which is *(s6+1). s6[n] is just an
alternate way to say *(s6+n). Which is identical to *(n+s6). Which is identical
to n[s6]. As weird as that may be. I am not sure what C++ would do with that.
--
John McKown
Systems Engineer IV
IT
Administrative Services Group
HealthMarkets®
9151 Boulevard 26 • N. Richland Hills • TX 76010
(817) 255-3225 phone •
[email protected] • http://www.healthmarkets.com/
Confidentiality Notice: This e-mail message may contain confidential or
proprietary information. If you are not the intended recipient, please contact
the sender by reply e-mail and destroy all copies of the original message.
HealthMarkets® is the brand name for products underwritten and issued by the
insurance subsidiaries of HealthMarkets, Inc. –The Chesapeake Life Insurance
Company®, Mid-West National Life Insurance Company of TennesseeSM and The MEGA
Life and Health Insurance Company.SM
> -----Original Message-----
> From: IBM Mainframe Discussion List [mailto:[email protected]]
> On Behalf Of Paul Gilmartin
> Sent: Tuesday, September 04, 2012 6:51 PM
> To: [email protected]
> Subject: Re: The IBM zEnterprise EC12 announcment
>
> On Tue, 4 Sep 2012 15:01:37 -0400, Thomas David Rivers wrote:
> >
> > cxx: t.c line 3:Error #144: a value of type "const char [7]" cannot
> >be used to initialize an entity of type "char [6]"
> > char s6[ 6 ] = "wombat";
> >
> Is there any convenient way to perform this initialization? (I don't
> consider either overallocating the array or enumerating individual
> chars in a multiple initializer convenient.)
>
> Thanks,
> gil
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN