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.