"dlsym" issue (was Re: Sun-Spots Digest, v10n86 [Miscellaneous])

Guy Harris auspex!guy at uunet.uu.net
Thu Jun 13 05:40:00 AEST 1991


>	myloadedfunc1 = dlsym(libhandle, "_func1");

BTW, if the name of the function that you're trying to get a pointer to is
"func1", pass "func1", *not* "_func1", to "dlsym()".

Both may *work* in SunOS 4.1; however, not *all* systems with "dlsym()"
have compilers that prepend underscores to symbol names, and I don't know
if the "dlsym()" on any of those System V Release 4 systems will be
"polite" enough to find "func1" if asked for "_func1".

I.e.,

	dlsym(libhandle, "func1")

should find the function whose name, in the C source code that defines
it, is "func1", both in SunOS 4.1 and System V Release 4; however, while

	dlsym(libhandle, "_func1")

will find it in SunOS 4.1, it may not find it in System V Release 4, so
the former, as it may work on more systems, is preferable to the latter.




More information about the Comp.sys.sun mailing list