#include <as400_protos.h> int _RSLOBJ(ILEpointer *sysptr, const char *path, char *objtype); int _RSLOBJ2(ILEpointer *sysptr, unsigned short type_subtype, const char *objname, const char *libname);
Note: These functions can only be used in an IBM® i PASE program. See the IBM PASE for i topic collection for more information about creating IBM PASE for i programs.
The _RSLOBJ() and _RSLOBJ2() functions resolve to an IBM i object. They accept symbolic information that identifies the object and return a 16-byte tagged system pointer to the specified object.
RSLOBJ_TS_PGM (0x0201) |
Specifies the MI type and subtype for an IBM i program (object type *PGM). |
RSLOBJ_TS_SRVPGM (0x0203) |
Specifies the MI type and subtype for an IBM i service program (object type *SRVPGM). |
Object Referred to | Authority Required |
---|---|
Every directory in the Integrated File System path to the IBM i object | *X |
IBM i library that contains the object | *X |
The function result is zero if the IBM i object was found and a system pointer was returned in the sysptr argument. A function result of -1 indicates an error that is further qualified by an errno value.
Memory errors may be reported with an IBM i exception message that the system converts to an IBM PASE for i signal (not return code and errno values). See IBM PASE for i Signal Handling for information about handling IBM i exceptions.
At least these errno values can be returned, with other values also possible (such as IBM i-unique ILE errno EAPAR):
[EACCES] | Not authorized to a library or directory needed
to resolve to the IBM i object. |
[EBUSY] | A library or directory needed to resolve to the
IBM i object is currently in use (locked). |
[EFAULT] | A memory fault occurred attempting to reference
an argument. |
[EINVAL] | An invalid argument value was specified. |
[EINTER] | An signal interrupted the operation. |
[ENAMETOOLONG] | Some component of the specified path is
too long, or the entire path exceeds the system limit, or the
objname or libname string is longer than 30 characters. |
[ENOENT] | The specified IBM i object was not found. |
[ENOTDIR] | A qualifier part of the path is not a
directory. |
[ELOOP] | Too many levels of symbolic links. |