IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Passing data from REXX to C programme in MVS?


IBM Mainframe Forums -> CLIST & REXX
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
chong.zhou

New User


Joined: 31 May 2017
Posts: 9
Location: Czech

PostPosted: Wed Jul 26, 2017 9:11 pm
Reply with quote

Could anyone suggest me some method to resolve the following problem? Thanks a lot!!

I have program A written in REXX. A will prepare some data (some KB to around 1 MB or so) and launch program B to do further process with the data. B is a light weight helper program written in C (XLC). Both programs run in MVS, not on USS.

Besides creating a temporary dataset, is there any other way to pass that bulk of data (from A to B)? Command line parameter is not an option considering the size of the data. And this is a very small part of a project, so I prefer to use some light-weight approach. (i.e., like the pipe in Unix)

Thank you very much.
Back to top
View user's profile Send private message
Pedro

Global Moderator


Joined: 01 Sep 2006
Posts: 2545
Location: Silicon Valley

PostPosted: Wed Jul 26, 2017 10:41 pm
Reply with quote

There is a programming interface to get the value of a rexx variable. You can set a variable in the rexx program and retrieve the information from your C program. This is non-trival and would require you to improve your 'light weight helper program'.

See chapter 24 of 'TSO/E Programming Services'.

FYI. its an assembler programming interface but I think you should be able to do from C.
Back to top
View user's profile Send private message
enrico-sorichetti

Superior Member


Joined: 14 Mar 2007
Posts: 10872
Location: italy

PostPosted: Thu Jul 27, 2017 1:35 am
Reply with quote

see here for a sample on how to write a rexx external function in metal c
ibmmainframes.com/viewtopic.php?t=62889&highlight=metal
Back to top
View user's profile Send private message
Willy Jensen

Active Member


Joined: 01 Sep 2015
Posts: 712
Location: Denmark

PostPosted: Thu Jul 27, 2017 1:27 pm
Reply with quote

I don't know the specific linkage conventions for a C program, but I would look at the section 'Host command environments for linking to and attaching programs' in the REXX Reference manual. In there it says:
Quote:
After the LINKMVS or ATTCHMVS environment routine evaluates the value of each variable, it builds a parameter list pointing to the values. The routine then links to or attaches the program and passes the parameter list to the program

I did a quick Google for 'REXX CALL C PROGRAM', which turned up a number of hits. I think this one might be of use: https://groups.google.com/forum/#!topic/comp.lang.rexx/v5GfFrePYH0
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> CLIST & REXX

 


Similar Topics
Topic Forum Replies
No new posts Running REXX through JOB CLIST & REXX 13
No new posts Error to read log with rexx CLIST & REXX 11
No new posts isfline didnt work in rexx at z/OS ve... CLIST & REXX 7
No new posts run rexx code with jcl CLIST & REXX 15
No new posts Execute secondary panel of sdsf with ... CLIST & REXX 1
Search our Forums:

Back to Top