原理: 應(yīng)用SpiderMonkey的js引擎可以執(zhí)行javascript代碼.
1.添加頭文件
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <smjs/jsapi.h>
2.添加主函數(shù)
int main(int argc, char **argv)
{
JSRuntime *RunTime = NULL;
JSContext *ConText = NULL;
JSObject *Global = NULL;
jsval rval;
const char *Script;
if(argc != 2)
{
printf("入?yún)€數(shù)錯誤\n");
return 0;
}
Script = argv[1];
printf("script is \"%s\"\n", Script);
if(!(RunTime = JS_NewRuntime(1024L * 1024L)) || !(ConText = JS_NewContext(RunTime, 8192)) || !(Global = JS_NewObject(ConText, NULL, NULL, NULL)))
{
return EXIT_FAILURE;
}
if(!JS_InitStandardClasses(ConText, Global))
{
return EXIT_FAILURE;
}
if(!JS_EvaluateScript(ConText, Global, Script, strlen(Script), "script", 1, &rval))
{
return EXIT_FAILURE;
}
printf("the script's result is %d\n", JSVAL_TO_INT(rval));
JS_DestroyContext(ConText);
JS_DestroyRuntime(RunTime);
JS_ShutDown();
return EXIT_SUCCESS;
}
3.編譯代碼
gcc -o examle examle.c -L$HOME/local/normal/lib -ljs
4.運行程序
./examle "var a=1; var b=2; a+b"
5.執(zhí)行結(jié)果
script is "var a=1; var b=2; a+b"
the script's result is 3