我正在尝试使用带有C语言的NodeJS将http://en.wikipedia.org/wiki/Setvbuf用于使用Fork()的JS文件。
我的program.c:
int readTabStr(int k)
{
char * tabString[] = {"p1.js","p2.js","p3.js","p4.js"};
int taille = sizeof(tabString)/sizeof(char);
int i;
for(i=0; i<taille; i++)
{
if (fork() == 0)
{
execlp("node","node", tabString[i], NULL);
}
else
{
wait(NULL);
}
}
return 0;
}
我正在使用这个JS文件来启动C文件:
var FFI = require("../../lib/ffi");
var test = new FFI.Library("./readTab", {
"readTabStr": ["int", ["int" ]]
});
var resultat = test.readTabStr(0);
问题是执行p1.js后,p2.js,p3.jsn p4.js.我收到4条错误消息:
node.js:116 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: Cannot find module '/home/fighter/Documents/ffi/kerrighed/execlp/��$[]�U `enter code here`��E��E��U��S������1�' at Function._resolveFilename (module.js:299:11) at Function._load (module.js:245:25) at Array.<anonymous> (module.js:402:10) at EventEmitter._tickCallback (node.js:108:26)
有什么想法吗?
答案 0 :(得分:1)
解决,
问题是
int taille = sizeof(tabString)/sizeof(char);
我应该这样做:
int taille = sizeof(tabString)/sizeof(char*);
非常感谢。