2012-04-19 105 views
1

我想在cgic代碼中調用route -n,但popen返回null。我嘗試了一個簡單的C代碼,它的工作原理,但是當我把它放在CGI中它返回null。呼叫路由-n在cgi

 printf("Content-type: text/html\r\n"); 
     printf("\r\n"); 
     .... 
     .. 
     stream = popen("route -n", "r"); 
     while (fgets(buffer, 100, stream) != NULL) 
     {........} 

它不進入while循環。我可以調用「貓」「netstat」等,但路由-n不起作用。

回答

0

如果我正在查看我的linux盒子,我發現route位於/sbin/route之下,因此它不是標準用戶的$PATH的一部分(雖然它可在我的系統上執行)。

catnetstat位於/bin/之下,因此屬於$PATH的一部分。

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

將調出該過程。

如果這不是選項,請將/sbin/添加到您的路徑中,它也將在您的示例中起作用。

+0

謝謝你的回覆。有用。 – brknl 2012-04-19 14:47:36