Manpages

______________________________________________________________________________

NAME

puts - 向 一 個 通 道 寫

總 覽 SYNOPSIS

puts ?-nonewline? ?channelId? string _________________________________________________________________

描 述 DESCRIPTION

把 用 string 給 出 的 字 符 寫 到 用 channelId 給 出 的 通 道 中 。 ChannelId 必 須 是 從 以 前 的 opensocket 調 用 返 回 的 一 個 通 道 標 識 符 。 它 必 須 爲 輸 出 而 打 開 。 如 果 未 指 定 channelId 則 取 省 爲 stdoutPuts 通 常 在 string 後 面 輸 出 一 個 換 行 字 符 , 但 可 以 通 過 指 定 -nonewline 開 關 來 禁 止 這 個 特 徵 。

puts 依 照 給 這 個 通 道 的 -translation 選 項 的 值 把 在 輸 出 中 換 行 (Newline)字 符 轉 換 成 特 定 於 平 臺 的 行 結 束 序 列 (例 如 , 在 PC 上 換 行 一 般 被 替 換 成 回 車 換 行 (carriage-return-linefeed)序 列 ; 在 Macintoshe 上 換 行 通 常 被 替 換 成 回 車 符 (carriage-returns))。 關 於 fconfigure 如 何 改 變 輸 出 的 討 論 請 參 見 fconfigure 手 冊 條 目 。

Tcl 在 內 部 緩 衝 輸 出 , 所 以 用 puts 寫 的 字 符 可 能 不 會 在 輸 出 文 件 或 設 備 上 立 即 出 現 ; Tcl 通 常 延 遲 輸 出 , 一 直 等 到 緩 衝 區 滿 了 或 通 道 被 關 閉 。 你 可 以 通 過 flush 命 令 強 制 輸 出 立 即 出 現 。 當 輸 出 緩 衝 被 添 滿 的 時 候 , 在 所 有 緩 衝 的 數 據 被 操 作 系 統 接 受 以 便 輸 出 之 前 , puts 命 令 將 一 直 阻 塞 。 如 果 channelId 在 非 阻 塞 模 式 下 , 那 麼 即 使 操 作 系 統 不 接 受 這 些 數 據 , puts 命 令 也 不 阻 塞 。 作 爲 替 代 , Tcl 繼 續 緩 衝 這 些 數 據 並 在 後 臺 以 底 層 的 文 件 或 設 備 可 以 接 受 的 速 度 寫 它 們 。 要 使 非 阻 塞 的 輸 出 工 作 應 用 必 須 使 用 Tcl 事 件 循 環 ; 否 則 Tcl 不 能 發 現 文 件 或 設 備 已 經 準 備 好 接 收 更 多 的 輸 出 數 據 。 在 非 阻 塞 模 式 下 的 一 個 通 道 可 以 緩 衝 任 意 數 量 的 數 據 , 這 可 能 消 耗 大 量 的 內 存 。 要 避 免 浪 費 內 存 , 非 阻 塞 I/O 通 常 應 該 以 事 件 驅 動 的 方 式 用 於 fileevent 命 令 (除 非 在 通 過 一 個 文 件 事 件 得 到 指 示 , 通 知 你 通 道 已 經 準 備 好 接 收 更 多 的 數 據 , 否 則 不 要 調 用 puts)。

參 見 SEE ALSO

file(n), fileevent(n)

關 鍵 字 KEYWORDS

channel, newline, output, write

[中 文 版 維 護 人 ]

寒 蟬 退 士

[中 文 版 最 新 更 新 ]

2001/10/17

《 中 國 Linux 論 壇 man 手 冊 頁 翻 譯 計 劃 》 :

http://cmpp.linuxforum.net

本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。 中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh