NodeJS退出代码向左移动8位

时间:2019-03-05 08:21:24

标签: c node.js return-value

我有两个程序,用C编写的程序“ a”和用NodeJS编写的程序“ b”。我从程序“ a”执行程序“ b”,如下所示:

int retVal = system("node /path/to/progB.js");
printf("%d",retVal);

我的程序'b'看起来像这样:

request(options, function (error, response, body) {
    if (!error && response.statusCode == 200) {

        if (body === 'something') {
            process.exitCode = 0;
        } else if (body === 'something else') {
            process.exitCode = 1;
        } else {
            process.exitCode = 2;
        }

    } else {
        console.log("ERR" + body + response);
        process.exitCode = 3;
    }
});
程序'a'中的

back返回值为0256512768。二进制形式是:0000 0000 00000001 0000 00000010 0000 00000011 0000 0000。通过检查这些数字,我可以清楚地看到我的返回值是位8和9,因此我的返回值向左移动了8位。但是为什么呢?

系统是具有Raspbian的Raspberry Pi,编译器是gcc版本6.3.0

1 个答案:

答案 0 :(得分:1)

您必须使用宏WIFEXITEDWEXITSTATUS和朋友来解释system的结果。有关宏的更多详细信息,请参见wait(2)的手册页。