2014-12-04 53 views

回答

2

您需要一个IO对象,以调用IO#close它:

io = IO.for_fd(3) 
# Actually, `for_fd` is just an alias for `new`, but it reads nice here 

io.close 

# or simply 
IO.for_fd(3).close 

事实上,即使只是说

IO.for_fd(3) 

,而不调用close可能就足够了,因为我们没” t将返回的IO分配给任何变量,它有资格进行垃圾回收,并且最终可能会在未来某个未指定的时间收集垃圾,终结器将会返回close它......但依靠这是一个非常糟糕的主意,因为你不知道对象将被垃圾收集。如果程序永远不会耗尽内存,它可能实际上不会被收集。

+0

很好的答案!我突然被运回C工作。 – 2014-12-04 03:22:15

+0

太好了,非常感谢! – user180574 2014-12-04 18:20:12