我正在使用节点 ffi调用 ac 库,但使用此代码时遇到了一些问题:
这个 c 程序在当前目录中创建一个文件夹,如果没有错误则返回 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);
仅当我在 create 函数中使用 int 而不是 char 时,该程序才有效(如图所示),但我需要在此函数中使用 char *。因此,如果我将功能更改为create(char * dir)
I't 不起作用。
我试图将 js 中的调用从
{"create": [ "int", ["int"] ] })
;
到
{"create": [ "int", ["char *"] ] });
.
你能帮忙吗?
谢谢