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 |