对于TCL8.5,lassign [chan pipe]的解决方法

时间:2014-11-22 01:38:29

标签: pipe tcl

我需要使用" chan pipe"但我的TCL版本是8.5,我不能使用8.6。 这是我在8.6中的代码

lassign [chan pipe] read_pipe write_pipe
puts $write_pipe "AAA"
close $write_pipe

puts $read_pipe

你能建议任何解决方法吗?

http://wiki.tcl.tk/21521

1 个答案:

答案 0 :(得分:1)

可以使用名为tclpipe的此实现中基于TEA的扩展。它可以与(据称)任何版本的Tcl一起使用(在8.4和8.5上测试)。

package require pipe
lassign [pipe] readChanId writeChanId
...
close $readChanId; close $writeChanId

此扩展提供在根命名空间中创建的一个Tcl命令pipe。 代码取自chan pipe命令的实现,目的是使Tcl版本< = 8.5的此功能可用,同时不需要Tclx包的存在。提供的命令的语法和语义与chan pipe的语法和语义相同,只是名称不同。

源和Win32二进制文件(使用MSVC 6.0编译器构建)托管here。 确认源代码可以在Windows XP(MSYS / MinGW和MSVC 6.0)和Debian Linux(“Etch”)上构建和使用。

来源:http://wiki.tcl.tk/21637