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

catnetstat/bin/にあるため、の一部です$PATH

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

プロセスを起動します。

これがオプションでない場合は/sbin/、パスに追加すると、例でも機能します。

于 2012-04-19T09:05:46.347 に答える