LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Programming (https://www.linuxquestions.org/questions/programming-9/)
-   -   How do I write the following callback function? (https://www.linuxquestions.org/questions/programming-9/how-do-i-write-the-following-callback-function-921314/)

coffeenet 12-30-2011 11:42 PM

How do I write the following callback function?
 
Hi,
I am very green in Linux. That is why I posted here.
The title was too short.
I need to write a callback function from a shared library that will call to a function that is inside the executable.
I am too green to linux, that I am not even share if Linux uses *.exe files ><
Any, I will try to explain what I am trying to do here:
Code:

//Executable

void functionA()
{
//code that calls to functions inside EXE
}
 
void functionB()
{
//code that calls to functions inside EXE
}
 
void functionC()
{
//code that calls to functions inside the Executable
}
 
//Shared Library
void functionSL()
{
// I need to call functionA(), functionB() & functionC()
}

So, instead of writing three callback functions.
I did the following:

Code:

//Executable
void functionABC()
{
functionA();
functionB();
functionC();
}
 
//Shared library
//Must call functionABC()

Therefore, unfortunately, even if I would create a shared library, and place functionA(), functionB() functionC() inside it, I will still have create Callback functions for the functions that are called from within functionA/B/C() ><

Furthermore, this is not my code. I am trying to add some simple functionality there. I did it on windows, and now I need to test it on Linux. But, I can't seem to get the right syntax for callback functions there.

Any ideas on "Callback functions to a function that is inside an executable?"
Thanx!

cvt 01-02-2012 08:49 PM

Without having tried it myself recently (so not sure how helpful this is gonna be to you), but functions or normally available on the stack?, so you should be able to pass the function addresses round.

After a bit of a google I did run accross this little gem....
http://tigcc.ticalc.org/doc/gnuexts.html#SEC66

It discusses nested functions and the passing of function addresses. This is for C though. You neglected to mention which language you were using.

NevemTeve 01-03-2012 12:15 AM

Nothing special.

Main code:

Code:

extern void funSlib (void);
void funExe (void)
{... funSlib (); ...}

shared lib

Code:

extern void funExe (void);
void funSlib (void)
{... funExe (); ...}



All times are GMT -5. The time now is 12:13 AM.