call_scilab — call_scilab is an interface which provides the ability to call Scilab engine from C/C++ code
Scilab offers the possibility to be called from a native (C/C++) application.
Thanks to this module, it is possible to call Scilab from C/C++ in order to interface Scilab's features from an other code/application or to be able to interface Scilab's features from an other language.
Since Scilab 5.2.0, all Scilab datatype can be handle by call_scilab. This is done thanks to API_Scilab
This help describes the features of the call_scilab API.
Note: The javasci module is based on call_scilab.
Note: old APIs (stackX.h) will not be available after Scilab 6.0 (included).
// A simple call_scilab example #include <stdio.h> /* stderr */ #include "stack-c.h" /* Provide functions to access to the memory of Scilab */ #include "call_scilab.h" /* Provide functions to call Scilab engine */ // Filename: simple_call_scilab.c int main(void) { /****** INITIALIZATION **********/ #ifdef _MSC_VER if ( StartScilab(NULL,NULL,NULL) == FALSE ) #else if ( StartScilab(getenv("SCI"),NULL,NULL) == FALSE ) #endif { fprintf(stderr,"Error while calling StartScilab\n"); return -1; } /****** ACTUAL Scilab TASKS *******/ SendScilabJob("myMatrix=['sample','for the help']"); SendScilabJob("disp(myMatrix);"); // Will display !sample for the help ! SendScilabJob("disp([2,3]+[-44,39]);"); // Will display - 42. 42. /****** TERMINATION **********/ if ( TerminateScilab(NULL) == FALSE ) { fprintf(stderr,"Error while calling TerminateScilab\n"); return -2; } return 0; }