我试图在cgic代码中调用route-n,但popen返回null。我试过用一个简单的C代码,但当我把它放在cgi中时,它返回空值。
printf("Content-type: text/html\r\n");
printf("\r\n");
....
..
stream = popen("route -n", "r");
while ( fgets(buffer, 100, stream) != NULL )
{........}
它不进入while循环。我可以叫“cat”“netstat”等,但route-n不起作用。
最佳答案
如果我查看我的linux系统,我会发现route
位于/sbin/route
下,因此对于标准用户来说,它不是$PATH
的一部分(而对于我的系统上的用户来说,它是可执行的)。cat
和netstat
位于/bin/
下,因此是$PATH
的一部分。
popen("/sbin/route -n", "r");
会提起这个过程。
如果没有这个选项,那么将
/sbin/
添加到您的路径中,它也将在您的示例中起作用。关于c - 在cgi中调用路由-n,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10224674/