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机器上运行相同的代码时,它可以正常工作,并且我得到了期望的行为。
有人可以指导我正确的方向吗?