|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Roman Chumakov 2:5020/400 31 Jan 2001 01:12:04 To : All Subject : буферизация входного потока --------------------------------------------------------------------------------
Диспозиция:
while(<STDIN>){
#do useful thing with each input string
}
Проблема:
Если в STDIN засунуть огромнейшую строку, в которой нет \n , можно забить
всю виртуальную память!!!! Т.е. обработки строки не начнется до тех пор,
пока не примется вся строка.
А вся строка не примется никогда, т.к. она будет приниматься и
приниматься....(она гигантская).... И ... "привет память" ...
Вопрос: Как сделать так, чтобы ограничить длину строки.
Т.е. если лимит превышен - не принимать больше, а сообщить об ошибке
что-ли...
Для чего это нужно:
Для http демона , например.
Если к такому демону подключится и дать на вход:
GET i_poshla_voda_zdes'_do_beskonechnosti...
То демон будет послушно жрать все, что ему, тупому на вход подадут.
А так, как конца строки не будет.... рано или поздно кончится память....
Хелп.
Спасибо.
Роман.
--- ifmail v.2.15dev5
* Origin: Moscow State University (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/54863fb1c738.html, оценка из 5, голосов 10
|