Re: Call a C program from RPG with variables & a return
Charles Wilt <[email protected]>
| Newsgroups | gmane.comp.lang.as400.c |
|---|---|
| Message-ID | <CAJ=Tnc6WP0eRAp9QZSXBE5=kMvC5QCp3Qr9z-_=wVu2a_o3CVg@mail.gmail.com> |
Why bother with C? RPGLE can do it quite easily. gMean = (a*b*c*d*e*f*g*h*i*j*k*l) ** (1/12); Charles On Tue, Feb 16, 2016 at 5:07 PM, Stephen Mooney <stephenmmooney-/[email protected]> wrote: > Greetings, > I am looking for some example 'C' code that will allow me to pass 12 > numeric variables from an SQLRPGLE program to a 'C' program that will > calculate the geometric mean for them and return the value to the SQLRPGLE > program. > I found an example where an RPG program will pass two character fields to > a 'C' program which will concatenate and return them, however I know > nothing of 'C', its syntax, or setting it up with an 'int' or 'void' to get > my example to do what I want. > Currently, this is the 'C' code example I am working with: > #include <stdio.h> > > /* Main program. */ > > > int main(int argc, char *argv[]) > { > > /* Display > parameters sent to the program. */ > printf("Incoming parameter 1 = %s\n", argv[1]); > printf("Incoming parameter 2 = %s\n", argv[2]); > > /* > Concatenate the two incoming parameters into the third parameter. */ > strcpy(argv[3],argv[1]); > strcat(argv[3],argv[2]); > > /* > End of program. Returning with concatenation of parameters 1 and 2 into > parameter 3. */ return; > > } > > I have found a 'C' program example that calculates the geometric mean I am > looking for, but it is set up as follows: > #include<stdio.h> #include<math.h> > int main(void) > { // > ((X1)(X2)(X3)........(XN))1/N double > x1=2,x2=4,x3=6,x4=7,x5=6; double x,N=5; > x=(x1*x2*x3*x4*x5); > x=pow(x,(1/N)); printf("Geometric Mean for > Xn: %lf",x); return 0; } > > I believe I would need to set up x1=argv[1], x2=argv[2] and so on, but I > do not believe I am setting up the variables correctly to pass back what I > am looking for. > Any suggestions would be greatly appreciated. Thanks. Regards, Stephen > Mooney > -- > This is the Bare Metal Programming IBM i (AS/400 and iSeries) (C400-L) > mailing list > To post a message email: C400-L-Zwy7GipZuJhWk0Htik3J/[email protected] > To subscribe, unsubscribe, or change list options, > visit: http://lists.midrange.com/mailman/listinfo/c400-l > or email: C400-L-request-Zwy7GipZuJhWk0Htik3J/[email protected] > Before posting, please take a moment to review the archives > at http://archive.midrange.com/c400-l. > > -- This is the Bare Metal Programming IBM i (AS/400 and iSeries) (C400-L) mailing list To post a message email: C400-L-Zwy7GipZuJhWk0Htik3J/[email protected] To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/c400-l or email: C400-L-request-Zwy7GipZuJhWk0Htik3J/[email protected] Before posting, please take a moment to review the archives at http://archive.midrange.com/c400-l.