Re: Interface between 4GL and UNIX C
Posted in 1998
On Tue, 13 Jan 1998, Jing He wrote: } I forget to tell you the 4GL version. } Here are they: the old version is 4.11.UC4, the new one is 4.17.UC1. } Jing He wrote in message <69g05g$os6$1@excalibur.flash.net>... } >I have a problem with a 4GL program. It was complied under HP-UX A.09.04 } >and on-line 5.01.UD1. It runs fine. When I recomplie this 4GL program } >under HP-UX B.10.20 and on-line 5.08.UD1, it has a problem to run it. The } >problem happens when it tries to call a C function. The error message is } >this:"FORMS statement error number -1320. A function has not returned the } >correct number of values expected by the calling function". What does this } >mean? But when I run the old executible code under new environment, it is } >OK. I do not change the 4GL and C program. It seems that the interface has } >changed under HP-UX B.10.20 and on-line 5.08.UD1. Someone has ideas? And John Carlson <carlson1@bellsouth.net> responded: }It means that, somewhere in the program, there is a mismatch between the }number of RETURNed variables from a function and the number of variables }expected by the RETURNING clause on the function call. I know that }Informix 4GL tightened up its error checking between 4.1x to 6.0x; maybe }that's the case in this situation. John is absolutely correct. If it is not possible for you to fix the code (which would never have run under RDS, incidentally!), then you can recompile after setting an environment variable, C4GLNOPARAMCHK (or some minor variation on that spelling). This suppresses the error check, but the code is erroneous because either the called function is returning data which the calling function is ignoring (this is the normal case) or the called function is not returning as much data as the calling function expects (unless this unconditionally produces an error). The C4GLNOPARAMCHK should be documented in the release notes if not in the manuals. Yours, Jonathan Leffler (johnl@informix.com) #include <witticism.h>