我需要为应该能够执行 shell 命令的嵌入式设备构建一个 javascript 引擎(duktape 或 jerryscript)。如何做到这一点?
问问题
287 次
1 回答
3
使用 C 语言中的 duktape,您可以轻松创建原生 ECMAScript 函数并通过全局对象创建对它的引用:
#include “duktape.h” int main() { /* 创建堆 */ duk_context* heap = duk_create_heap(NULL,NULL,NULL,NULL, 无效的); /* 最好在这里设置一个错误回调 */ /* 将原生函数压栈 */ duk_push_c_function(ctx, /* 堆上下文 */ &native_js_shell, /* 本机函数指针 */ 1); /* 接受的参数 */ /* 使这个 javascript 函数成为全局对象的属性 */ duk_put_global_string(ctx, /* 堆上下文*/ “壳”); /* js 中的函数名 */ 返回0; } /* 你的原生 C 函数 */ duk_ret_t native_js_shell(duk_context* ctx) { /* 从 javascript 中获取参数 */ const char* cmd = duk_safe_to_string(ctx, /* 堆上下文 */ -1); /* 堆栈位置 */ /* 运行 shell 命令等 */ /* ... */ }
函数的所有解释duk_*
都可以在duktape API中找到,但也许这会让您了解它的结构。
ps 欢迎来到 Stack Overflow!您的问题可能已被降级,因为它几乎需要有人为您编写所有代码。一般来说,在未来,尝试自己进行研究,并在遇到困难时提出具体问题。:)
于 2017-05-14T23:29:07.950 回答