如同我可以从 Perl 中的文件句柄中找到文件名吗? https://stackoverflow.com/questions/2813092/can-i-find-a-filename-from-a-filehandle-in-perl但在 Tcl 中。
无论如何,我计划缓存文件名-文件句柄关联,所以我纯粹出于好奇而问——特别是链接中提到的“操作系统魔法”。 Tcl里可以吗?
如果重要的话,我(被迫)在 SunOS 5.10 上使用 Tcl 8.0.5。
对于这么旧的 Tcl 版本,您确实没有那么多选择。最简单的是做一点包装open
and close
:
rename open _original_open
rename close _original_close
proc open {filename args} {
global fileForChannel
set channel [eval [list _original_open $filename] $args]
set fileForChannel($channel) $filename
return $channel
}
proc close {channel} {
global fileForChannel
catch {unset fileForChannel($channel)}
_original_close $channel
}
然后,您可以获得开放通道的文件名$ch
仅仅通过阅读$fileForChannel($ch)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)