2013-07-09 55 views
0

請幫忙,我找不到解決辦法busybox httpd cgi不打印「返回」

情況。我有busybox httpd服務器。在cgi-bin文件夾中是一個cgi可執行文件,它通過printf命令發送給客戶端格式化的文本。

問題是文本格式應該看起來像一個列,但客戶端只接收一個字符串。儘管在「printf」中我使用「\ n」和「(char)13」。 換句話說可執行不返回「回」符號

我寫了下面的

for (i=0; i<4;i++) 
printf ("%9.8g%c\n", lTemp[i]*dTemp[i], (char) 13); 

回答

0

是從CGI程序發送到Web客戶端被視爲HTML文本,而不是純文本格式的文本。
當瀏覽器顯示HTML時,將忽略換行符和回車符(簡單地稱爲「返回」)字符。

爲了使顯示的文本進行線斷裂,HTML break tag,「< BR />」應該被插入到輸出字符串:

printf("%9.8g <br />\r\n", lTemp[i] * dTemp[i]); 

在文字中使用換行和空白的,你的生成的CGI程序對於顯示的實際HTML頁面幾乎沒有影響。使用換行符和空格來格式化HTML,以便源代碼可讀,並使用HTML標籤控制客戶端瀏覽器中顯示的文本。

BTW
使用一個數字常數,並在的printf一個字符轉換爲不輸出回車字符的優選方法。
以格式使用定義的轉義序列\r