|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/371.32 31 Jan 2001 13:37:41 To : Zfido88 Subject : Re: буферизация входного потока -------------------------------------------------------------------------------- В твоём письме от Wed, 31 Jan 2001 00:12:04 +0300 написано: zzr> Диспозиция: while(<STDIN>>){ zzr> #do useful thing with each input string zzr> } zzr> Проблема: zzr> Если в STDIN засунуть огромнейшую строку, в которой нет \n , можно забить zzr> всю виртуальную память!!!! Т.е. обработки строки не начнется до тех пор, zzr> пока не примется вся строка. zzr> А вся строка не примется никогда, т.к. она будет приниматься и zzr> приниматься....(она гигантская).... И ... "привет память" ... zzr> Вопрос: Как сделать так, чтобы ограничить длину строки. zzr> Т.е. если лимит превышен - не принимать больше, а сообщить об ошибке zzr> что-ли... zzr> Для чего это нужно: zzr> Для http демона , например. zzr> Если к такому демону подключится и дать на вход: zzr> GET i_poshla_voda_zdes'_do_beskonechnosti... zzr> То демон будет послушно жрать все, что ему, тупому на вход подадут. zzr> А так, как конца строки не будет.... рано или поздно кончится память.... Более "честный" вариант ответа, чем уже дали: perldoc -f read. -- Artem Chuprina E-mail: ran@ran.pp.ru Programmer FIDO: 2:5020/371.32 Memonet Ltd. Phone: +7-095-284-1356 --- slrn/0.9.6.3-as (Linux) * Origin: AKA с подствольным плюсомётом (2:5020/371.32) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/71613bb035c51.html, оценка из 5, голосов 10
|