Hi Rick,
Reference service program QP0LLIB1 either directly on the compile or
by using a binding directory. This is where the Qp0lRenameUnlink is
exported from.
That's unnecessary. The system will automatically find QP0LLIB1 and bind
to it. (Explicitly specifying QP0LLIB1 or a binding directory won't hurt
anything -- but it's not necessary.)
The ILE binder will automatically find any system-supplied API. That
is, any API that's part of the IBM i operating system. APIs that are
part of ILE C, Apache, et al, would need to be bound to explicitly.
The IFS APIs are all part the Unix-type APIs category. They are not
part of the ILE C Runtime. Therefore, the IFS APIs do not require any
special binding.
Frustratingly, the IFS APIs do their error handling via the ILE C
__errno function. This was presumably for compatibility with the way
Unix does things -- but it's frustrating because it blurs the line
between Unix-type and ILE C Runtime. FWIW, __errno() and strerror()
are part of ILE C, and the APIs that actually manipulate the IFS are not.
In IBM i 6.1, IBM fixed this problem. You no longer need to bind to
QC2LE to get __errno and strerror() in 6.1..
Anyway, the routines in the ILE C runtime _are_ APIs. They just are
part of ILE C instead of being part of IBM i itself. An API is just a
routine that provides a way to interface your program with another
application...
As an Amazon Associate we earn from qualifying purchases.