使用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" ] ]