我试图在cgic代码中调用route -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循环。我可以称之为“cat”“netstat”等,但路由-n不起作用。
答案 0 :(得分:0)
如果我查看我的linux框,我看到route
位于/sbin/route
下,因此不属于$PATH
标准用户的一部分(虽然它是可执行文件)在我的系统上)。
cat
和netstat
位于/bin/
下,因此属于$PATH
。
popen("/sbin/route -n", "r");
将提出这个过程。
如果这不是选项,请将/sbin/
添加到您的路径中,它也适用于您的示例。