Ruby Spawn继承文件句柄

fjaof16o  于 2023-05-22  发布在  Ruby
关注(0)|答案(1)|浏览(120)

我已经安装了优秀的handle.exe从马克Rusinovitch允许显示当前打开的文件描述符。
在ruby中,当我启动:

require 'tempfile'
file=Tempfile.new('foxylady')
pid=Process::spawn('calc.exe',:close_others=>true)
Process::detach(pid)
file.close
puts(`handle foxylady`)

我明白了

E:\WORK\voillequinj_maci>ruby a.rb

Handle v3.51
Copyright (C) 1997-2013 Mark Russinovich
Sysinternals - www.sysinternals.com

calc.exe           pid: 4176   type: File           164: C:\Users\VOILLE~1\AppData\Local\Temp\foxylady20140702-5908-1sn8edi

这让我觉得Process::spawn没有做它应该做的事情。calc.exe继承用file=Tempfile.new('foxy lady')打开的句柄。我说错了吗?有没有办法避免这种情况?

gt0wga4j

gt0wga4j1#

您可以控制FD,参见文档。

Process.spawn(command, in: :close, out: :close, err: :close, close_others: true)

相关问题