我试图在cgic代码中调用路由-n,但是popen返回null。我尝试了一个简单的C代码,它可以工作,但当我把它放在cgi中时,它返回null。
printf("Content-type: text/html\r\n");
printf("\r\n");
....
..
stream = popen("route -n", "r");
while ( fgets(buffer, 100, stream) != NULL )
{........}它不会进入while循环。我可以调用“猫”"netstat“等,但是路由-n不起作用。
发布于 2012-04-19 17:05:46
如果我查看我的linux机器,我会发现route位于/sbin/route下,因此它不是标准用户$PATH的一部分(虽然它在我的系统上对他们是可执行的)。
cat和netstat位于/bin/下,因此是$PATH的一部分。
popen("/sbin/route -n", "r");将会启动这个过程。
如果没有此选项,请将/sbin/添加到您的路径中,它也将在您的示例中起作用。
https://stackoverflow.com/questions/10224674
复制相似问题