Sponsored Content
Full Discussion: dlsym...error
Top Forums UNIX for Advanced & Expert Users dlsym...error Post 83834 by Vikky Panchal on Tuesday 20th of September 2005 03:55:50 AM
Old 09-20-2005
Network dlsym...error

Hi,

I have ftp.so file which on nm gives the following table....

[138] |0x0000c4f8|0x000000f0|FUNC |LOCL |0 |14 |ftp_active
[160] |0x0000c00c|0x000000f0|FUNC |LOCL |0 |14 |ftp_ascii
[135] |0x0000c0fc|0x000000f0|FUNC |LOCL |0 |14 |ftp_binary
[163] |0x0000a8e0|0x000001a8|FUNC |LOCL |0 |14 |ftp_cd
[130] |0x0000bf20|0x000000ec|FUNC |LOCL |0 |14 |ftp_close
.
.
[178] |0x00000000|0x00000000|FUNC |GLOB |0 |UNDEF |Ls__9FTPClientRQ29FTPCl
ient8FileListPCc [FTPClient::Ls(FTPClient::FileList &, char const *)]


Now using dlopen and doing a dlsym on "ftp_cd", "ftp_ascii" is gives an error
saying
dlsym Couldn't find ftp_cd: ld.so.1: cor: fatal: ftp_cd: can't find symbol
while for "FTPClient::Ls(FTPClient::FileList &, char const *)" it does not give any error.
Can any one please tell me why and how can i get reference to these functions.

my code :
.
.
handle = dlopen("ftp.so",RTLD_NOW);
if(!handle) {
// print error..
}
dlerror();
fnc = ((int*)()(int)) dlsym(handle,FN_Name[i]);
if((error=dlerror())) {
// print error
}

.
.
here :
FN_Name[i] = contains mangled name entries from output of "nm" shown above.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Error: Internal system error: Unable to initialize standard output file

Hey guys, need some help. Running AIX Version 5.2 and one of our cron jobs is writing errors to a log file. Any ideas on the following error message. Error: Internal system error: Unable to initialize standard output file I'm guessing more info might be needed, so let me know. Thanks (2 Replies)
Discussion started by: firkus
2 Replies

2. UNIX for Dummies Questions & Answers

awk Shell Script error : "Syntax Error : `Split' unexpected

hi there i write one awk script file in shell programing the code is related to dd/mm/yy to month, day year format but i get an error please can anybody help me out in this problem ?????? i give my code here including error awk ` # date-month -- convert mm/dd/yy to month day,... (2 Replies)
Discussion started by: Herry
2 Replies

3. UNIX for Advanced & Expert Users

VSI-FAX error - Cannot login to server and Connecto error to host

I encounters a VSIFAX related error: vfxstat: Cannot login to server on rsac3: Connect error to host 172.16.1.45: Invalid argument It started happening last night with a core dump. Then we can't start VSIFAX again. I am runing VSI-FAX 4.2 on AIX box (0 Replies)
Discussion started by: b_jin
0 Replies

4. AIX

nim mksysb error :/usr/bin/savevg[33]: 1016,07: syntax error

-------------------------------------------------------------------------------- Hello, help me please. I am trying to create a mksysb bakup using nim. I am geting this error, how to correct it ? : Command : failed stdout: yes stderr: no... (9 Replies)
Discussion started by: astjen
9 Replies

5. UNIX for Dummies Questions & Answers

dlsym() returns 0 for an existing function

Sometimes I observe this in gdb: (gdb) br my_function Breakpoint .. at 0x...: file ..., line ... i.e., "my_function" does exist in the current executable. however, dlsym does not find it: (gdb) p dlsym(0,"my_function") $6 = 0 This is a C program; dlsym does find other defined functions and... (2 Replies)
Discussion started by: sds
2 Replies

6. UNIX for Dummies Questions & Answers

> 5 ")syntax error: operand expected (error token is " error

im kinda new to shell scripting so i need some help i try to run this script and get the error code > 5 ")syntax error: operand expected (error token is " the code for the script is #!/bin/sh # # script to see if the given value is correct # # Define errors ER_AF=86 # Var is... (4 Replies)
Discussion started by: metal005
4 Replies

7. Shell Programming and Scripting

What is this error log = hda: irq timeout: error=0x00 and how to solve?

what is this error log = hda: irq timeout: error=0x00 and how to solve? every day upon checking the logs i see this error. hda: irq timeout: error=0x00 hda: irq timeout: error=0x00 hda: irq timeout: error=0x00 hda: irq timeout: error=0x00 hw_client: segfault at 0000000000000046 rip... (3 Replies)
Discussion started by: avtalan
3 Replies

8. Solaris

Rpcinfo: can't contact portmapper: RPC: Authentication error; why = Failed (unspecified error)

I have two servers with a fresh install of Solaris 11, and having problems when doing rpcinfo between them. There is no firewall involved, so everything should theoretically be getting through. Does anyone have any ideas? I did a lot of Google searches, and haven't found a working solution yet. ... (2 Replies)
Discussion started by: christr
2 Replies

9. Shell Programming and Scripting

IF section problem. syntax error: unexpected end of file error

Hello, I have another problem with my script. Please accept my apologies, but I am really nooby in sh scripts. I am writing it for first time. My script: returned=`tail -50 SapLogs.log | grep -i "Error"` echo $returned if ; then echo "There is no errors in the logs" fi And after... (10 Replies)
Discussion started by: jedzio
10 Replies

10. UNIX for Beginners Questions & Answers

Print Error in Console and both Error & Output in Log file - UNIX

I am writing a shell script with 2 run time arguments. During the execution if i got any error, then it needs to redirected to a error file and in console. Also both error and output to be redirected to a log file. But i am facing the below error. #! /bin/sh errExit () { errMsg=`cat... (1 Reply)
Discussion started by: sarathy_a35
1 Replies
DLOPEN(3)						     Linux Programmer's Manual							 DLOPEN(3)

NAME
dlclose, dlerror, dlopen, dlsym - Programming interface to dynamic linking loader. SYNOPSIS
#include <dlfcn.h> void *dlopen(const char *filename, int flag); const char *dlerror(void); void *dlsym(void *handle, char *symbol); int dlclose(void *handle); Special symbols: _init, _fini. DESCRIPTION
dlopen loads a dynamic library from the file named by the null terminated string filename and returns an opaque "handle" for the dynamic library. If filename is not an absolute path (i.e., it does not begin with a "/"), then the file is searched for in the following loca- tions: A colon-separated list of directories in the user's LD_LIBRARY_PATH environment variable. The list of libraries cached in /etc/ld.so.cache. /lib, followed by /usr/lib. If filename is a NULL pointer, then the returned handle is for the main program. External references in the library are resolved using the libraries in that library's dependency list and any other libraries previously opened with the RTLD_GLOBAL flag. If the executable was linked with the flag "-rdynamic", then the global symbols in the executable will also be used to resolve references in a dynamically loaded library. flag must be either RTLD_LAZY, meaning resolve undefined symbols as code from the dynamic library is executed, or RTLD_NOW, meaning resolve all undefined symbols before dlopen returns, and fail if this cannot be done. Optionally, RTLD_GLOBAL may be or'ed with flag, in which case the external symbols defined in the library will be made available to subsequently loaded libraries. If the library exports a routine named _init, then that code is executed before dlopen returns. If the same library is loaded twice with dlopen(), the same file handle is returned. The dl library maintains link counts for dynamic file handles, so a dynamic library is not deallocated until dlclose has been called on it as many times as dlopen has succeeded on it. If dlopen fails for any reason, it returns NULL. A human readable string describing the most recent error that occurred from any of the dl routines (dlopen, dlsym or dlclose) can be extracted with dlerror(). dlerror returns NULL if no errors have occurred since initialization or since it was last called. (Calling dlerror() twice consecutively, will always result in the second call returning NULL.) dlsym takes a "handle" of a dynamic library returned by dlopen and the null terminated symbol name, returning the address where that symbol is loaded. If the symbol is not found, dlsym returns NULL; however, the correct way to test for an error from dlsym is to save the result of dlerror into a variable, and then check if saved value is not NULL. This is because the value of the symbol could actually be NULL. It is also necessary to save the results of dlerror into a variable because if dlerror is called again, it will return NULL. There are two special pseudo-handles, RTLD_DEFAULT and RTLD_NEXT. The former will find the first occurrence of the desired symbol using the default library search order. The latter, which is usable only from within a dynamic library, will find the next occurrence of a func- tion in the search order after the current library. This allows one to provide a wrapper around a function in another shared library. dlclose decrements the reference count on the dynamic library handle handle. If the reference count drops to zero and no other loaded libraries use symbols in it, then the dynamic library is unloaded. If the dynamic library exports a routine named _fini, then that routine is called just before the library is unloaded. RETURN VALUE
dlclose returns 0 on success, and non-zero on error. EXAMPLE
Load the math library, and print the cosine of 2.0: #include <stdio.h> #include <dlfcn.h> int main(int argc, char **argv) { void *handle; double (*cosine)(double); char *error; handle = dlopen ("libm.so", RTLD_LAZY); if (!handle) { fprintf (stderr, "%s ", dlerror()); exit(1); } cosine = dlsym(handle, "cos"); if ((error = dlerror()) != NULL) { fprintf (stderr, "%s ", error); exit(1); } printf ("%f ", (*cosine)(2.0)); dlclose(handle); return 0; } If this program were in a file named "foo.c", you would build the program with the following command: gcc -rdynamic -o foo foo.c -ldl NOTES
The symbols RTLD_DEFAULT and RTLD_NEXT are defined by <dlfcn.h> only when _GNU_SOURCE was defined before including it. ACKNOWLEDGEMENTS
The dlopen interface standard comes from Solaris. The Linux dlopen implementation was primarily written by Eric Youngdale with help from Mitch D'Souza, David Engel, Hongjiu Lu, Andreas Schwab and others. The manual page was written by Adam Richter. SEE ALSO
ld(1), ld.so(8), ldconfig(8), ldd(1), ld.so.info Linux 2001-12-14 DLOPEN(3)
All times are GMT -4. The time now is 05:02 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy