2013-07-09 2 views
0

Помогите, я не могу найти решениеbusybox httpd cgi не печатает «возврат»

Ситуация. У меня есть FTP-сервер busybox. В папке 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 программы на веб-клиент рассматривается как HTML текст, а не обычный текст.
Когда HTML обрабатывается для отображения в браузере, символы новой строки и возврата каретки (что вы просто называете «возвращать») игнорируются.

Чтобы вызвать отображаемый текст, чтобы выполнить разрыв строки, тем HTML break tag, «< бр />» должна быть вставлена ​​в выходную строку:

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

Использование новых строк и пробелов в тексте, что ваш Созданные программы CGI будут мало влиять на фактическую страницу HTML, которая будет отображаться. Используйте символы новой строки и пробелы для форматирования HTML, чтобы исходный текст был доступен для чтения, и использовать теги HTML для управления отображаемым текстом в браузере клиента.

КСТАТИ
Используя числовую константу и преобразование символов в PRINTF не является предпочтительным способом вывода символа возврата каретки.
Используйте определенную управляющую последовательность \r в формате.