Calling and Accepting RFC Functions 
Description
The Remote Function Call Application Programming Interface (RFC API) allows - both remotely or locally - you to call ABAP function modules from C programs as well as receiving call requests issued from an ABAP program by the CALL FUNCTION interface.
In ABAP function modules are special routines with well-defined and documented interfaces which are developed within a library development workbench.
ABAP function modules use named parameter passing. There are also exceptions which can be raised by a function module to indicate errors. These exceptions can be caught by the caller of a function module.
The following functions form the programming interface to call ABAP function modules from a C environment.
Functions for an RFC Client Program
Open an RFC connection
Another way to open an RFC connection, more appropriate for non-C environments than Visual Basic
Another way to open an RFC connection, more appropriate for non-C environments than Visual Basic (using RFC Version 3)
Call an ABAP function module without waiting for the result
Wait for execution of an RFC function called and receive the return values from the ABAP function module
Call a function module and receive the return values in one step
Functions for an RFC Server Program
Accept an RFC request or register at an SAP gateway
Register functions as callable function modules
Communicate function as an RFC function (Windows 3.x.)
Wait for the next function call
Return information about an RFC connection
Read the symbolic function name
Receive the parameters of a function
Send back the return values
Report error that occured during the execution of an RFC function
Raise an exception while processing an RFC call if the function module being called has tables parameters
Get associated TID for execute an RFC-function via aRFC (3.0 onwards)
Call a function module and receive the return values in one step. It can be used for calling back a function module in R/3 using the same RFC connection while executing an RFC function in this server program. It is also possible to use RfcCall and RfcReceive.
Register functions as callable function modules for transactional RFC