Что происходит с командой GETS, если входной буфер переполняется перед любым символом новой строки? - PullRequest
0 голосов
/ 14 февраля 2020

Предположим, используя конструкцию: while {[gets $id line]>0} {...}. А что если размер одной строки больше размера входного буфера?

1 Ответ

2 голосов
/ 15 февраля 2020

Tcl будет буферизовать данные, когда новая строка не получена, если память доступна, и pani c, если ее нет. Поскольку это можно использовать для DoS-атаки, TIP # 287 ввел команду chan pending. Эта команда может использоваться для выполнения действий, когда буферные данные превышают лимит.

Примечание: chan pending может помочь только при использовании с неблокирующими каналами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...