1

我试图在 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”等,但 route -n 不起作用。

4

1 回答 1

0

如果我正在查看我的 linux 框,我看到它route位于下面/sbin/route,因此不是$PATH标准用户的一部分(虽然它在我的系统上对他们来说是可执行的)。

cat并且netstat位于下方/bin/,因此是$PATH.

popen("/sbin/route -n", "r");

将提出该过程。

如果这不是选项,请添加/sbin/到您的路径中,它也适用于您的示例。

于 2012-04-19T09:05:46.347 回答