______________________________________________________________________________
NAME
puts - 向 一 个 通 道 写
总 览 SYNOPSIS
puts ?-nonewline? ?channelId? string _________________________________________________________________
描 述 DESCRIPTION
把 用 string 给 出 的 字 符 写 到 用 channelId 给 出 的 通 道 中 。 ChannelId 必 须 是 从 以 前 的 open 或 socket 调 用 返 回 的 一 个 通 道 标 识 符 。 它 必 须 为 输 出 而 打 开 。 如 果 未 指 定 channelId 则 取 省 为 stdout。 Puts 通 常 在 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
关 键 字 KEYWORDS
channel, newline, output, write
[中 文 版 维 护 人 ]
寒 蝉 退 士
[中 文 版 最 新 更 新 ]
2001/10/17
《 中 国 Linux 论 坛 man 手 册 页 翻 译 计 划 》 :
跋
本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh