Fork和NodeJS出错

时间:2011-05-23 15:33:17

标签: c node.js exec fork

我正在尝试使用带有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)

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

解决,

问题是

 int taille = sizeof(tabString)/sizeof(char);

我应该这样做:

int taille = sizeof(tabString)/sizeof(char*);

非常感谢。