我目前正在尝试遵循有关网络抓取的教程,并且收到了 ruby 错误消息“Errno::ENOMEM: 没有足够的空间”。我从http://bugs.ruby-lang.org/issues/show/1063找到了一种解决方法,但我想知道是否有更永久的解决方案。我正在使用 ruby 1.8.7 (2010-12-23 patchlevel 330) [i386-mingw32] 并且我无法更新到我怀疑可以解决此问题的新版本。仅当我尝试获取更大的页面时才会出现此问题。
当前解决方案:
class String
def to_2d_array(value)
unpack("a#{value}"*((size/value)+((size%value>0)?1:0)))
end
end
class << $stdout
alias old_write write
def write(a)
a.to_s.to_2d_array(1024).each{|little| old_write little}
end
end