使用Node.js FFI绑定数据(javascript&c)

我正在使用节点ffi来调用ac库,我有一些使用此代码的问题:

这个程序在当前目录下创build一个文件夹,如果没有错误,返回1。

#include <stdint.h> #include <stdio.h> #include <sys/stat.h> int create(int dir) { int id; id = mkdir(dir, S_IRWXU); if (id == -1) return 1; else return 2; } 

我用来调用这个C程序的JavaScript代码是:

 var FFI = require("../lib/ffi"); var libsender = new FFI.Library("./libsender", {"create": [ "int", [ "int" ] ] }); if (process.argv.length < 3) { console.log("Arguments: " + process.argv[0] + " " + process.argv[1] + " <max>"); process.exit(); } var output; output = libsender.create(process.argv[2]) console.log("Your output: " + output); 

这个程序正在工作,如果我使用int而不是创build函数中的字符(如图所示),但我需要在这个函数中使用char *。 所以,如果我改变函数来create(char * dir)我不行。

我试图改变从js的电话

{"create": [ "int", ["int"] ] }) ;

{"create": [ "int", ["char *"] ] });

你能帮忙吗?

谢谢

尝试将int create(int dir)更改为int create(char* dir) ,并…

 var libsender = new FFI.Library("./libsender", { "create": [ "int", [ "int" ] ] 

…至…

 var libsender = new FFI.Library("./libsender", { "create": [ "int", [ "string" ] ]