On 07-Nov-2011 10:48 , James Lampert wrote:
Is there an easy way for a CL program to know what library it's
located in?

It needs to access a similarly named IFS directory, according to
the library where it lives.


A subroutine in the CLP could effect something like the following code snippet; as currently coded, assumes the bytes returned will always include the active CLP [OPM] in the first 200 bytes provided:

<code>

pgm
dcl &rcvdta *char 200
dcl &rcvlen *int 4 200
dcl &bytrtn *int 4
dcl &bytavl *int 4
dcl &nbrent *int 4
dcl &entofs *int 4
dcl &pgmsst *int 4
dcl &pgm *char 10
dcl &lib *char 10
dcl &errcde *char 08 x'0000000800000000'
dcl &ji *char 58 '*'
chgvar %sst(&ji 43 14) x'0000000000000000000000000000'
chgvar %bin(&ji 45 4) 01 /* Thread indicator; thread of this CLP */
/* get current OPM entry in stack; i.e. this CLP */
call QWVRCSTK (&rcvdta &rcvlen 'CSTK0100' &ji 'JIDF0100' &errcde)
chgvar &bytrtn %bin(&rcvdta 1 4)
chgvar &bytavl %bin(&rcvdta 5 4)
chgvar &entofs %bin(&rcvdta 13 4)
chgvar &nbrent %bin(&rcvdta 17 4)
chgvar &pgmsst (&entofs + 25)
chgvar &pgm %sst(&rcvdta &pgmsst 10)
chgvar &pgmsst (&pgmsst + 10)
chgvar &lib %sst(&rcvdta &pgmsst 10)
sndpgmmsg (&pgm *cat ':' *cat &lib) tousr(*requester)

</code>

Regards, Chuck

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.