我需要为嵌入式设备构建一个javascript引擎(duktape或jerryscript),它应该能够执行shell命令。怎么能实现呢?
答案 0 :(得分:2)
使用C语言中的duktape,您可以轻松创建本机ECMAScript函数,并通过全局对象创建对它的引用:
#include "duktape.h" int main() { /* create heap */ duk_context* heap = duk_create_heap(NULL,NULL,NULL,NULL, NULL); /* preferably, set an error callback here */ /* push the native function on the stack */ duk_push_c_function(ctx, /* heap context */ &native_js_shell, /* native function pointer */ 1); /* accepted arguments */ /* make this javascript function a property of the global object */ duk_put_global_string(ctx, /* heap context*/ "shell"); /* function name in js */ return 0; } /* Your native C function */ duk_ret_t native_js_shell(duk_context* ctx) { /* obtain the argument from javascript */ const char* cmd = duk_safe_to_string(ctx, /* heap context */ -1); /* position on stack */ /* run the shell command, etc. */ /* ... */ }
duk_*
函数的所有解释都可以在duktape API中找到,但也许这可以让您了解它的结构。
P.S。欢迎来到Stack Overflow!您的问题可能已被降级,因为它几乎需要有人为您编写所有代码。一般来说,在将来,尝试自己进行研究,并在遇到问题时询问具体问题。 :)