Re: Quickest, easiest way to check for existence of a program, from ILE C?

CRPence <[email protected]>
Newsgroups gmane.comp.lang.as400.c
Organization midrange.com
Message-ID <[email protected]>
On 03-Mar-2015 11:40 -0600, James H. H. Lampert wrote:
> Would anybody happen to know the quickest, easiest way to check (from
> an ILE C program) whether a program exists, before attempting to call
> it?
>
> i.e., if C program FOO has:
>
>   #pragma linkage(BAR,OS,nowiden)
>   ...
>   int BAR(void *);
>   ...
>
> and wants to call:
>
>   iretcd = BAR(baz);
>
> but ONLY if BAR actually exists on the system, what's the quickest,
> easiest, least resource-intensive way to determine whether BAR
> exists, before calling it?
>

   The quickest way to effect a call to a problem if the program exists 
is to *not* check first for existence; i.e. simply invoke the program. 
In the case the program does not exist, then handle the exception when 
the Activation\Invocation [LIC AI] feature determines no such program 
can be called due to non-existence; other work to check existence may 
have to perform with a similar handler active or just perform some 
return-code checking.  Of course an exception-path is probably slower 
than a existence check with a return-code, but omitting the up-front 
check for existence [thus having coded the call in a presumed-success 
style] also ensures that there is no window of opportunity for the call 
to fail _despite_ the success of a _prior_ existence-check that no 
longer holds true.

-- 
Regards, Chuck
-- 
This is the Bare Metal Programming IBM i (AS/400 and iSeries) (C400-L) mailing list
To post a message email: C400-L-Zwy7GipZuJhWk0Htik3J/[email protected]
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/c400-l
or email: C400-L-request-Zwy7GipZuJhWk0Htik3J/[email protected]
Before posting, please take a moment to review the archives
at http://archive.midrange.com/c400-l.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.