fgets()在Coreos中崩溃

时间:2018-11-16 06:42:27

标签: c linux fgets coreos

我有一个在coreOS机器上运行的C代码片段:

char db[512];
snprintf(db, 512, "%s %s", <some command>, <args of the command>);
FILE* pipe = popen(db, "r");
if (!pipe) {
    return NULL;
}

char buf[256];
while (fgets(buf, sizeof(buf), pipe) != NULL) {
    <DEBUG POINT 1>
    <some code utilising buf>
}
<DEBUG POINT 2>

现在,正在执行的命令正在流向Pipe,最终调用了一个python代码,该代码返回带有给定参数的None(Null)。 我面临的问题是fgets无法处理响应,并且在尝试在Pipe上执行fgets()时程序崩溃。我的意思是,在到达while()时,我的程序退出并且无法到达DEBUG POINT 1或2。我试图搜索可能的解决方案,但找不到任何东西。

另一个有趣的事情是,当我在Amazon Linux机器上运行相同的代码时,它可以正常工作,并且我得到了期望的行为。

有人可以指导我正确的方向吗?

0 个答案:

没有答案