Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > IOクラス > clone

instance method IO#clone

clone -> IO[permalink][rdoc]
dup -> IO

レシーバと同じ IO を参照する新しい IO オブジェクトを返します。参照しているファイル記述子は dup(2) されます。

clone の際に self は一旦 IO#flush されます。フリーズした IO の clone は同様にフリーズされた IO を返しますが、 dup は内容の等しいフリーズされていない IO を返します。

[EXCEPTION] IOError:
既に close されていた場合に発生します。


clone_io = nil
IO.write("testfile", "test")
File.open("testfile") do |io|
  clone_io = io.clone
end
clone_io.read # => "test"
clone_io.close