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

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

Global Moderator

Joined: 01 Sep 2006
Posts: 2214
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

Senior Moderator

Joined: 14 Mar 2007
Posts: 10712
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
Back to top
View user's profile Send private message
Willy Jensen

Active User

Joined: 01 Sep 2015
Posts: 416
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:
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:!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 SKIP LOCKED DATA in UPDATE statement DB2 9
No new posts Any examples of calling FTP from REXX? CLIST & REXX 1
No new posts SummeRx: a new framework for REXX z/OS CLIST & REXX 6
No new posts A command to change LRECL of an exist... JCL & VSAM 7
This topic is locked: you cannot edit posts or make replies. Passing a field name to COBOL program COBOL Programming 10
Search our Forums:

Back to Top