0

我目前正在尝试遵循有关网络抓取的教程,并且收到了 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
4

1 回答 1

0

为了解决我的问题,我添加了:

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

最后结束后到我的 irb.rb 文件。

于 2013-03-25T13:54:36.670 回答