今天在寫cgi網頁時,用了前幾天學到的popen取設備端ip值的方法,如下:
char MyIpBuf[ MY_IP_LENTH ]={0};
FILE *fpRead;
//使用shell command來取得ip值
char* command=(char*)"ifconfig eth0|grep 'inet addr' |awk -F \":\" '{print $2}' |awk '{print $1}'";
char* renewCh;
fpRead = popen(command, "r");
fgets(MyIpBuf, MY_IP_LENTH , fpRead);
奇怪的是,在browser輸入這個cgi網址時,怎麼popen取到的MyIpBuf值是空的,
這個問題讓我找了好久,也嘗試用system先輸出到檔案的方式,值還是空
奇怪的是,如果編譯成可執行檔,直接在terminal執行都取的到我要的值,
但是只要是編譯成cgi透過Browser執行,就會是空
後來發現把ifconfig改成完整的路徑,如下面這樣就沒有問題了:
char* command=(char*)"/sbin/ifconfig eth0|grep 'inet addr' |awk -F \":\" '{print $2}' |awk '{print $1}'";
猜測應該是Browser執行shell時,PATH路徑沒有/sbin因此找不到ifconfig這個指令吧?!
Hello,
回覆刪除我也遇到了類似的問題,爬了好久的文都沒有相關的解決方法。
還好有看到這篇文給了一點方向,最後改了server username & group name就解決問題了。
特別登入一下說聲感謝XD!
很高興可以幫助到你~
刪除感謝你的回應! XD