How to Call external function in .C or .So (Shared Object)


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to Call external function in .C or .So (Shared Object)
# 1  
Old 05-06-2010
How to Call external function in .C or .So (Shared Object)

Hi,

Anybody know any way to Call with Shell Script an external function wrote in .C or .So (Shared Object) on AIX enviroment and returning parameters of .C or .SO to Shell Script?

Tks!!
# 2  
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.
# 3  
Old 05-11-2010
You can call an external function or library from certain shells (bash, ksh93, zsh) if you know exactly what you are doing. It is not a trivial exercise and it is fraught with danger. In fact you can also go the other way with ksh93 and invoke ksh93 internal shell functionality from an application.

Here are pointers to some posts I have written on the subject for ksh93 which should help you understand the issues:
KSH93 Custom Builtins 1
KSH93 Custom Builtins II
KSH93 libshell
# 4  
Old 05-11-2010
Quote:
Originally Posted by fpmurphy
You can call an external function or library from certain shells (bash, ksh93, zsh) if you know exactly what you are doing. It is not a trivial exercise and it is fraught with danger.
I've been unable to positively determine that BASH suports this at runtime rather than compile-time.

[edit] ahah. It's enable, not builtin in bash.

It's apparently documented in the source code not the manual page.

bash builtins seem to be more difficult to build and write than ksh ones. They depend on bash internals for their argument lists, so it's not as simple as builtin(argc, argv[])...

Last edited by Corona688; 05-11-2010 at 01:17 PM..
# 5  
Old 05-11-2010
Bash custom built-ins are interestingly difficult but doable if you really need them. I try and avoid them if possible.

Here is a pointer to some good work by Chris F.A. Johnson (who is a member of this forum): Loadable built-in commands in bash

Last edited by fpmurphy; 05-11-2010 at 06:10 PM..
# 6  
Old 05-14-2010
Bash builtins really aren't that difficult code-wise. The parameter list is a simple linked list instead of an array. But you can't build them without building bash itself.

I've been experimenting with a bash builtin which creates arbitrary anonymous pipes... The behavior's interesting. Since the shell's holding it open, it doesn't block like a named pipe when you redirect into it. If it's not full, it doesn't block even when you write to it. This is of course the definition of a buffer, but it's interesting to have it happen when you haven't created your reader yet. Some useful concurrency could happen there. There might be some communication arrangements doable with this that'd be impossible with a named pipe since the shell can't open both ends at the same time.
# 7  
Old 05-15-2010
Question

Hi

Maybe instead of call an external function you cut only this function code another new .c file and edit in so shall use to its exit status($?) or output the results of function (to write tmp file like ) before use compile new file (gcc ) yourfile..It can be used in this wise and more than simple Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

9. 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

10. 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
Login or Register to Ask a Question