______________________________________________________________________________
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