Re: Calling RPGILE program from C

Tony Cate <[email protected]>
Newsgroups gmane.comp.lang.as400.c
Message-ID <CAC7ed4Zg7O0+yBYq5kc_-hfWKjE7LK9sWuEzSqsiE0anp+sFKg@mail.gmail.com>
Marc,

I made all the changes you did. I still get: CZP1404: The parameter "OS"
specified for "pragma linkage" is not valid. The pragma is ignored.

On Tue, Oct 28, 2014 at 4:40 PM, marc <marc-G5HfMHItY0AlJZD/[email protected]> wrote:

> I got this to 'work':
>
> #include <stdio.h>
> #include <string.h>
>
> #include <decimal.h>
> #include <stdlib.h>
>
> void RGTRIGCNTL(char[80], decimal(10,0));
>
> #pragma map(RGTRIGCNTL, "TESTPGM")
> #pragma linkage(RGTRIGCNTL, OS)
>
> int main(int argc, char *argv[])
> {
>     char                *triggerInfo;
>     decimal (10,0)      triggerLen;
>
>     triggerInfo = argv[1];
>     triggerLen = 12; //argv[2];
>
>     RGTRIGCNTL(triggerInfo, triggerLen);
> }
>
>  - Added a map for the external program name
>  - hardcoded the triggerLen to bypass type conversion
>  - dropped the typedef
>  - dropped the ref on the second parm of the actual call - to match
> prototype
>  - I'm at v7r1 but compiled back to v5r4
>
> HTH,
>
> Marc
>
>
> On 10/28/2014 1:02 PM, Tony Cate wrote:
>
>> First the code:
>>
>> *#include <stdio.h>*
>> *#include <string.h>*
>>
>> *#include <decimal.h>
>> #include <stdlib.h>
>>
>> typedef void RGTRIGCNTL(char[80], decimal(10,0));
>>
>> #pragma linkage(RGTRIGCNTL,fetchable)
>>
>> int main(int argc, char *argv[])
>> {
>>      char                *triggerInfo;
>>      decimal (10,0)      triggerLen;
>>
>>      triggerInfo = argv[1];
>>      triggerLen = argv[2];
>>
>>      RGTRIGCNTL(triggerInfo, &triggerLen);
>> }*
>>
>> *What's going on: trying to write a small C program to attach to file
>> triggers.*
>>
>> Problems:
>>
>> pragma linkage won't allow 'OS' for a parameter. Everything I've read
>> indicates that's what I want. The only "ID' compiler didn't barf on is
>> 'fetchable', which is why its there.
>>
>> It compiles, but nothing happens when I try to step into RGTRIGCNTL.
>>
>> The Dev box is V5R4 (long story).
>>
>> The questions:
>>
>> Why can't I use 'OS' in linkage? Why isn't my program getting called?
>>
>> The last time I wrote a C program was in college, a looong time ago.
>>
>
> --
> 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.
>
>


-- 
*Tony Cate* | Senior Programmer/Analyst | 704.872.2458 x 126
[image: Auction Edge, Inc.] <http://www.auctionedge.com/>
*AUCTION EDGE, INC.* | *Powering Independent Auctions*
STATESVILLE, NC | 704.872.2458
-- 
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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.