我已经安装了Mark Rusinovitch的优秀handle.exe,它允许显示当前打开的文件描述符。
在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')
打开的句柄。
我错了吗?有没有办法避免这种情况?