fredshaw 2010-05-02 15:47
浏览 246
已采纳

一个ruby进程能同时开几个IO对象啊

我知道fork(2)的操作系统一个进行可以有9个文件描述,在bash中0,1,2是标准输入,输出,错误,还有6个自定义文件描述符。我看书上说ruby的IO是基于UNIX的。我想问到底一个ruby进程是否只能打开9个IO对象(所谓的9个文件描述符所对应的IO对象)。这几天想这个想得头都大了。。。
各位大虾实在对不住我想给大家多点积分,可是小弟这个菜鸟,能回答的问题真是有限,所以没赚到积分。悲剧了
  • 写回答

1条回答 默认 最新

  • zaqwsxedc 2010-05-05 22:24
    关注

    我做了个实验,代码如下:
    [code="ruby"]
    files = []
    1.upto(9999) { |i| files << File.open(i.to_s,'w') }
    [/code]

    得到了这样的错误:
    [quote]
    Errno::EMFILE: Too many open files - 254
    [/quote]

    看样子,最多能打开253个吧。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?