Ruby 4.0 リファレンスマニュアル

singleton method Dir.for_fd

for_fd(fd) -> DirRuby 3.3 から[permalink][rdoc][edit]

整数のディレクトリファイルディスクリプタ fd が指すディレクトリを表す、新しい Dir オブジェクトを返します。

返される Dir オブジェクトには対応するパスがないため、 Dir#path は nil を返します。

このメソッドは POSIX 2008 で定義された fdopendir() を使用します。 POSIX 非対応のプラットフォームでは実装されておらず、 NotImplementedError が発生します。

[PARAM] fd:
ディレクトリを指すファイルディスクリプタを整数で指定します。
require 'tmpdir'

Dir.mktmpdir do |tmpdir|
  d0 = Dir.new(tmpdir)
  d1 = Dir.for_fd(d0.fileno)

  p d1.class  # => Dir
  p d0.path   # => tmpdir のパス
  p d1.path   # => nil
  d0.close
end

[SEE_ALSO] Dir#fileno, Dir#path, Dir.fchdir