Charles,
>From the 'Language Environment Programming Guide',
PLIST indicates in what form the invoked routine should expect the argument
list. You can specify PLIST with the following values under Language
Environment:
HOST The argument list is assumed to be a character string. The string is
located differently under various systems as follows:
Under TSO, if a CPPL is detected, Language Environment gets the
string from the command buffer.
Under TSO, if a CPPL is not detected, Language Environment assumes a
halfword-prefixed string in the MVS format.
Under MVS, Language Environment uses the halfword-prefixed string.
OS The inbound parameter list is assumed to be in an MVS linkage format in
which register 1 points to a parameter address list. No run-time options are
available. Register 1 is not interrogated by Language Environment.
The PLIST(HOST) setting allows the object to execute under MVS
(assuming a halfword-prefixed string), or under TSO (using the CPPL or the
MVS-format parameter list). Specify PLIST(HOST) to default to the
argument list format for the operating system under which your application
is running.
Another example using LINK and specifying a half-word prefixed length:
LINK EP=pgmname,PARAM=PPARM
PPARM DC H'17',C'PARM1 PARM2 PARM3'
With ARGPARSE and PLIST(HOST) the results should be:
4 /* argc */
pgmname /* argv0 */
PARM1 /* argv1 */
PARM2 /* argv2 */
PARM3 /* argv3 */
regards,
Dave Waldman
On Mon, 28 Dec 2009 09:17:17 -0600, David Waldman
<[email protected]> wrote:
>Charles,
>
>Try specifying the length as the 1st parm.
>
>ATTACH EP=CPGM,ECB=STECB,PARAM=(PPARM)
>
>PPARM DC H'17',C'PARM1,PARM2,PARM3'
>
>Your results should be:
>
>2 /* argc */
>CPGM /* argv0 */
>PARM1,PARM2,PARM3 /* argv1 */
>
>hth,
>Dave Waldman
>
>
>On Sat, 26 Dec 2009 16:14:39 -0500, Charles Mills <[email protected]>
>wrote:
>
>>Question: Does anyone know if a NOARGPARSE C++ program called via LINK
or
>>ATTACH would receive parm 2 - the second word pointed to by R1 -
>anywhere?
>>Is there a recommended way to do this?
>>
>>What I'd like to end up with is a C program that "did me no favors" - if
>>invoked from JCL EXEC, then argv[1] would point to the PARM= string if any
>>("as is") and if called via LINK or ATTACH would get the vector pointed to
>>by the caller's R1 as argv[1, 2, 3 .].
>>
>>Anyone know the answer to this?
>
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html