Sponsored Content
Top Forums Shell Programming and Scripting How to Call external function in .C or .So (Shared Object) Post 302420339 by jim mcnamara on Tuesday 11th of May 2010 10:42:56 AM
Old 05-11-2010
There is no way without invoking something based on C code. In other words you would have to write C code that calls the AIX equivalent of dlopen(): probably loadquery()/loadbind() ) in later versions. It then runs the external function - the name of which is passed as a parameter.
 

10 More Discussions You Might Find Interesting

1. Programming

Does my ld support shared object creation

Hi, I have been trying to create a sharef object on my HP UX 11 machine (HP-UX <myhostname> B.11.00 A 9000/879 ...... two-user license) to create the shared object first I am creating the object file using cc -Aa -c +z dyn.c (I use -Aa and +z as per HP's manual on linkers ) to create the... (0 Replies)
Discussion started by: linuxpenguin
0 Replies

2. Linux

Shared Object File

Hi All, I created the share object file using gcc -shared -fpic mypp.cpp -o myp.so but, pls tell me how to link this .so file to my client program. Thanks (0 Replies)
Discussion started by: sarwan
0 Replies

3. AIX

Shared Object library problem

Hi, When using shared objects on AIX 4.3 i am getting runtime problems. I have a small sample program which links to a shared object libray, oracle and system related libraries. At runtime it fails (gives segmentation fault and coredump ) in one proc file when executing login statement. But... (0 Replies)
Discussion started by: suman_jakkula
0 Replies

4. Programming

calling a shared object from a daemon

Hi I have a multithreaded daemon(server) which will accept connections from various clients and sends back results to them. In order to serve my daemon clients, it has to establish a TCP connection to another server(vendor supplied which is listening on a specific TCP port) and gets the... (11 Replies)
Discussion started by: axes
11 Replies

5. UNIX for Advanced & Expert Users

Issue with shared object in AIX

Hi All, I have a problem with the shared objects setup in AIX. We have a customized shell written by the developers over here. When i issue a MQ Series command (mqsilist) it is giving the error as . All the commands making use of this libImbCmdLib.a.so is failing. But when executed in normal... (1 Reply)
Discussion started by: dhanamurthy
1 Replies

6. AIX

AIX 5.2 C++ shared object issue

Hi all, I am developing an application with two components. One "c" binary and one "C++" shared object. While execution, the shared object crashes out and core dump is created whenever "new" is executed. But if i use malloc this will work perfectly. I tried to use dbx. Below given was... (1 Reply)
Discussion started by: itssujith
1 Replies

7. Red Hat

shared object

Hi, I would like to create a shared object ( .so). This shared object 1. uses the functions from a library. 2. Also it should be able to use the global variable in an app To achieve this what should I do ? 1) To use the functions in the library should I give the -ld option while... (1 Reply)
Discussion started by: rvan
1 Replies

8. Programming

Shared Object Question

Hello, I am new to programming shared objects and I was hoping someone could tell me if what I want to do is possible, or else lead me in the right direction. I have a main program that contains an abstract base class. I also have a subclass that I'm compiling as a shared object. The subclass... (13 Replies)
Discussion started by: dorik
13 Replies

9. UNIX for Dummies Questions & Answers

Call external function

Is it possible to call a function from another script? Thanks (6 Replies)
Discussion started by: chrisjones
6 Replies

10. Programming

Help building and using a shared object (x64)

Hello, I am not that experienced with Linux, and I am currently facing some issues. The application I'm working on uses hundreds of threads. To optimize the memory usage, I am putting all my data inside a shared object (so). The steps for this are as follows: 1. a C file (generated... (17 Replies)
Discussion started by: Maelstrom
17 Replies
DLOPEN(3)						   BSD Library Functions Manual 						 DLOPEN(3)

NAME
dlopen -- load and link a dynamic library or bundle SYNOPSIS
#include <dlfcn.h> void* dlopen(const char* path, int mode); DESCRIPTION
dlopen() examines the mach-o file specified by path. If the file is compatible with the current process and has not already been loaded into the current process, it is loaded and linked. After being linked, if it contains any initializer functions, they are called, before dlopen() returns. dlopen() can load dynamic libraries and bundles. It returns a handle that can be used with dlsym() and dlclose(). A second call to dlopen() with the same path will return the same handle, but the internal reference count for the handle will be incremented. Therefore all dlopen() calls should be balanced with a dlclose() call. If a null pointer is passed in path, dlopen() returns a handle equivalent to RTLD_DEFAULT. mode contains options to dlopen(). It must contain one or more of the following values, possibly ORed together: RTLD_LAZY Each external function reference is bound the first time the function is called. RTLD_NOW All external function references are bound immediately during the call to dlopen(). RTLD_LAZY is normally preferred, for reasons of efficiency. However, RTLD_NOW is useful to ensure that any undefined symbols are discovered during the call to dlopen(). If neither RTLD_LAZY nor RTLD_NOW is specified, the default is RTLD_LAZY. One of the following flags may be ORed into the mode argument: RTLD_GLOBAL Symbols exported from this image (dynamic library or bundle) will be available to any images build with -flat_namespace option to ld(1) or to calls to dlsym() when using a special handle. RTLD_LOCAL Symbols exported from this image (dynamic library or bundle) are generally hidden and only availble to dlsym() when directly using the handle returned by this call to dlopen(). If neither RTLD_GLOBAL nor RTLD_LOCAL is specified, the default is RTLD_GLOBAL. One of the following may be ORed into the mode argument: RTLD_NOLOAD The specified image is not loaded. However, a valid handle is returned if the image already exists in the process. This pro- vides a way to query if an image is already loaded. The handle returned is ref-counted, so you eventually need a correspond- ing call to dlclose() RTLD_NODELETE The specified image is tagged so that will never be removed from the address space, even after all clients have released it via dlclose() Additionally, the following may be ORed into the mode argument: RTLD_FIRST The retuned handle is tagged so that any dlsym() calls on the handle will only search the image specified, and not subsequent images. If path is NULL and the option RTLD_FIRST is used, the handle returned will only search the main executable. SEARCHING
dlopen() searches for a compatible Mach-O file in the directories specified by a set of environment variables and the process's current work- ing directory. When set, the environment variables contain a colon-separated list of directory paths, which can be absolute or relative to the current working directory. When path does not contain a slash character (i.e. it is just a leaf name), dlopen() searches the following until it finds a compatible Mach- O file: $LD_LIBRARY_PATH, $DYLD_LIBRARY_PATH, current working directory, $DYLD_FALLBACK_LIBRARY_PATH. When path looks like a framework path (e.g. /stuff/foo.framework/foo), dlopen() searches the following until it finds a compatible Mach-O file: $DYLD_FRAMEWORK_PATH (with framework partial path from path ), then the supplied path (using current working directory for relative paths), then $DYLD_FALLBACK_FRAMEWORK_PATH (with framework partial path from path ). When path contains a slash but is not a framework path (i.e. a full path or a partial path to a dylib), dlopen() searches the following until it finds a compatible Mach-O file: $DYLD_LIBRARY_PATH (with leaf name from path ), then the supplied path (using current working directory for relative paths), then $DYLD_FALLBACK_LIBRARY_PATH (with leaf name from path ). Note: If DYLD_FALLBACK_LIBRARY_PATH is not set, dlopen operates as if DYLD_FALLBACK_LIBRARY_PATH was set to $HOME/lib:/usr/local/lib:/usr/lib. Note: If DYLD_FALLBACK_FRAMEWORK_PATH is not set, dlopen operates as if DYLD_FALLBACK_FRAMEWORK_PATH was set to $HOME/Library/Frame- works:/Library/Frameworks:/Network/Library/Frameworks:/System/Library/Frameworks. Note: There are no configuration files to control dlopen searching. Note: If the main executable is a set[ug]id binary or codesigned with entitlements, then all environment variables are ignored, and only a full path can be used. Note: Mac OS X uses "universal" files to combine 32-bit and 64-bit libraries. This means there are no separate 32-bit and 64-bit search paths. RETURN VALUES
If dlopen() fails, it returns a null pointer, and sets an error condition which may be interrogated with dlerror(). SEE ALSO
dlopen_preflight(3) dlclose(3) dlsym(3) dlerror(3) dyld(1) ld(1) BSD
Aug 7, 2012 BSD
All times are GMT -4. The time now is 05:15 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy