|
Mark,
I think you're in luck. Create two source members, one C and one CL and run
this test. It should apply to your scenario.
/* this is C module CMAINTST */
int main(void)
{
return 3;
}
/* this is CL module CLMAINTST */
pgm
dcl &retval *char 4 x'00000000'
dcl &charval *char 10
CALLPRC PRC('main') RTNVAL(%bin(&RETVAL 1 4))
chgvar &charval %bin(&retval 1 4)
SNDPGMMSG MSG('charval = ' *CAT &CHARVAL)
endpgm
CRTCMOD MODULE(QGPL/CMAINTST) SRCFILE(QGPL/C)
CRTCLMOD MODULE(QGPL/CLMAINTST) SRCFILE(QGPL/CLP)
CRTPGM PGM(QGPL/CLMAINTST) MODULE(QGPL/CLMAINTST QGPL/CMAINTST)
CALL QGPL/CLMAINTST
Returns: charval = 0000000003
Elvis
-----Original Message-----
Subject: Retrieving error return code from C program
I am calling a C program from CL via the CALL command. The C function
returns an error number like 0 or 1 for success or failure. Is there some
way to retrieve this value from a CL program? I can run the program via
QSH and see the return code, but I would prefer to just use CALL for this.
I assume there is no way to use CALLPRC when you need to run the main()
function in a C *PGM?
Thanks
Mark
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.