|
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@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/c400-l
or email: C400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/c400-l.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 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.