The following example demonstrates a call to the acu_cobol() C function:
int
main(int argc, char *argv[])
{
char *initv[3];
struct a_cobol_info cblinfo;
initv[0] = argv[0];
initv[1] = "-c";
initv[2] = "myconfig";
acu_initv(3, initv);
memset(&cblinfo, 0, sizeof(cblinfo));
cblinfo.a_cobol_info_size = sizeof(cblinfo);
cblinfo.pgm_name = "MYCBLPGM";
acu_cobol(&cblinfo);
acu_shutdown(1);
return 0;
}
This is equivalent to running a program from the command line as:
runcbl -c myconfig "MYCBLPGM"
If you add the no_stop parameter to the a_cobol_info structure, the COBOL program returns to the caller if the program executes a STOP RUN:
struct a_cobol_info cblinfo; memset(&cblinfo, 0, sizeof(cblinfo)); cblinfo.a_cobol_info_size = sizeof(cblinfo); cblinfo.pgm_name = "MYCBLPGM"; cblinfo.no_stop = 1; acu_cobol(&cblinfo);
Otherwise, you can remove the no_stop parameter and force the executable to halt:
struct a_cobol_info cblinfo; memset(&cblinfo, 0, sizeof(cblinfo)); cblinfo.a_cobol_info_size = sizeof(cblinfo); cblinfo.pgm_name = "MYCBLPGM"; acu_cobol(&cblinfo);
The acu_cobol() function does return to the caller when the program performs a STOP RUN if the call is made through the Web runtime or if the runtime is running as an automation server.