Onde Ruby rastreia seus descritores de arquivos abertos?

Qual é essa perguntaNão Sobre

Esta questão énão sobre como fechar automaticamente um arquivo com File # close ou a sintaxe de bloco aberto File #. É uma questão sobre onde o Ruby armazena sua lista de descritores de arquivos abertos em tempo de execução.

A questão real

Se você tem um programa com descritores abertos, mas não tem acesso ao objeto File ou IO relacionado, como você pode encontrar uma referência aos descritores de arquivos abertos no momento? Veja este exemplo:

filename='/tmp/foo'
%x( touch "#{filename}" )
File.open(filename)
filehandle = File.open(filename)

A primeira instância de Arquivo é aberta, mas a referência ao objeto não é armazenada em uma variável. A segunda instância é armazenada emfilehandle, onde posso acessá-lo facilmente com #inspect ou #close.

No entanto, o objeto File descartado não foi removido; simplesmente não é acessível de nenhuma maneira óbvia. Até que o objeto seja finalizado, Ruby deve estar acompanhando em algum lugar ... mas onde?

questionAnswers(1)

yourAnswerToTheQuestion