如果输入缓冲区在任何换行符之前溢出,GETS 命令会发生什么情况?



假设使用构造:while {[gets $id line]>0} {...}.现在,如果单行大小大于输入缓冲区大小怎么办?

只要内存可用,Tcl 就会在没有收到换行符时缓冲数据,当内存不可用时会崩溃。由于这可以用于 DoS 攻击,提示 #287 引入了chan pending命令。此命令可用于在缓冲数据超过限制时执行操作。

注意:chan pending仅在与非阻塞通道一起使用时才有帮助。

相关内容

  • 没有找到相关文章

最新更新