close(3tcl) | Tcl Built-In Commands | close(3tcl) |
close - 关闭一个打开了的通道
close channelId
关闭由 channelId
给出的通道。ChannelId
必须是一个通道标识符,是以前的
open 或 socket
命令的返回值。向通道的输出设备刷新所有的缓冲了的输出,丢弃所有缓冲了的输入,关闭底层的文件或设备,并且
使用 channelId 变成无效。
如果通道正在阻塞(block),在刷新所有输出之前命令不返回。如果通道未阻塞并且有未刷新的(unflushed)输出,通道保持打开而命令立即返回;将在后台刷新输出并且在刷新完成时关闭通道。
如果 channelId
是用于一个命令管道的一个阻塞通道,则
close
等待子进程完成。
如果通道在解释器间共享,则 close 使 channelId 在调用它的解释器中无效而在所有的共享解释器关闭这个通道之前不起其他作用。当在其中注册了这个通道的最后一个解释器调用 close 时,上面描述的清除动作发生。关于通道共享的描述请参见 interp 命令。
在解释器被销毁和进程退出时自动的关闭通道。通道被切换到阻塞模式,用以确保(ensure)在进程退出之前正确的刷新所有的输出。
命令返回一个空串,如果在刷新输出时发生了错误它可以产生一个错误。
file(n), open(n), socket(n), eof(n)
blocking, channel, close, nonblocking
寒蝉退士
2001/07/03
http://cmpp.linuxforum.net
本页面中文版由中文
man 手册页计划提供。
中文 man
手册页计划:https://github.com/man-pages-zh/manpages-zh
7.5 | Tcl |