在 javascript 中调用 C 函数

calling C functions in javascript

提问人:vish101 提问时间:8/13/2014 更新时间:8/14/2014 访问量:1243

问:

我正在使用 javascript 来运行服务器。 我想在服务器端调用 c 函数。我该怎么称呼它? 我用谷歌搜索了一下,大多数时候都有关于如何使用 AJAX 和 .net 调用函数的信息。 c 函数是 alread build 并保存在 PC 上的某个位置。 我想从服务器端的 javascript 调用这个 C 函数

有人对此有任何信息吗?非常感谢。 问候 维什

JavaScript C - 客户端-服务器端

评论

0赞 musefan 8/13/2014
是的,您只能在客户端计算机上运行 JavaScript。因此,您必须对服务器进行 AJAX 调用。服务器上的某些东西需要处理这个调用,然后它可以做你需要的事情。尝试一些东西,然后回来向我们展示你的代码,有一个更具体的问题需要解决。理解“调用 C 函数”的含义也非常有用
1赞 Nick Dickinson-Wilde 8/13/2014
你在用Node.js吗?如果没有,请查看一些服务器端 js 调用外部内容示例。
0赞 vish101 8/13/2014
非常感谢您的回复。实际上,我正在使用 BeagleBone Black,它通过链接 github.com/simonmonk/prog_bbb.git Prog BBB 文件夹中有 2 个文件09_01_led_control.js和 09_01_led_control.html 运行 Web 服务器。当我们连接一个小猎犬黑并运行这些代码时,打开链接 192.168.7.2:8085,我们可以看到一个简单的 GUI(开/关按钮)。现在我希望服务器代码 (09_01_led_control.js) 调用位于 BeagleBone 黑色上的 C 函数。请发表评论。对 stackoverflow 来说很新!谢谢

答:

0赞 SimpleJ 8/14/2014 #1

您可以使用 node 模块生成子进程。child_process

var spawn = require('child_process').spawn;

var ls = spawn("ls", ["-l", "-a"], {stdio: "inherit"});

ls.on("exit", function(status) {
    console.log("Done");
});

请参见:http://nodejs.org/api/child_process.html

评论

0赞 vish101 8/14/2014
谢谢 SImpleJ。我会检查的。但是服务器怎么知道C函数的保存位置呢?我们需要调用 main.obj 文件。右?实际上,我已经编写了一个简单的main.c文件。将其构建到 main.o 中,我想调用此 main.o 文件。再次感谢。
0赞 vish101 8/14/2014
这是一个很好的链接,我试图理解:benfarrell.com/2013/01/03/......
0赞 SimpleJ 8/14/2014
你可以将你的 c 程序编译成一个可执行文件,然后使用 spawn 运行它。这不会直接调用函数;它只是运行包含该函数的程序。根据您的链接,看起来您正在尝试做一些更深入的事情,而不仅仅是生成一个过程。
0赞 vish101 8/14/2014
谢谢 SimpleJ。我只是在谷歌搜索时得到了那个链接。还行。我会试着理解你的答案。1 疑问:JavaScript 如何知道目标文件的位置?谢谢。
0赞 SimpleJ 8/14/2014
Javascript 不知道目标文件的位置。您可以将 or 文件编译到,然后运行以从节点运行可执行文件。main.cmain.omain.exespawn("path/to/main", ["arg1", "arg2", "etc"])