______________________________________________________________________________
NAME
fconfigure - 设 置 和 获 得 一 个 通 道 上 的 选 项
总 览 SYNOPSIS
fconfigure
channelId
fconfigure channelId name
fconfigure channelId name value ?name value
...?
_________________________________________________________________
描 述 DESCRIPTION
fconfigure
命 令 设 置 和 检
索 一 个 通 道 的
选 项 。 ChannelId 标
识 要 设 置 或 查
询 某 个 选 项 的
那 个 通 道 。 如
果 没 有 提 供 name
或 value 参 数 , 命
令 返 回 一 个 列
表 , 它 包 含 着
这 个 通 道 上 可
变 更 的 选 项 名
字 和 值 。 如 果
提 供 了 name 而 没
有 value 则 命 令 返
回 给 定 选 项 的
当 前 值 。 如 果
提 供 一 对 或 多
对 name和 value, 命
令 把 每 个 指 名
的 选 项 设 置 成
相 应 的 value ; 在
这 种 情 况 下 返
回 值 是 一 个 空
串 。 所 有 通 道
都 支 持 下 面 描
述 的 选 项 。 额
外 的 , 每 个 通
道 类 型 都 可 以
增 加 只 有 它 自
己 支 持 的 选 项
。 参 见 建 立 各
种 类 型 通 道 的
命 令 的 手 册 条
目 来 得 到 这 个
特 定 类 型 的 通
道 所 支 持 的 选
项 。 例 如 , 参
见 socket命 令 的 手
册 条 目 来 得 到
增 补 的 选 项 。
-blocking boolean
-blocking 选 项 决 定 在 通 道 上 的 I/O 操 作 是 否 可 以 导 致 进 程 无 限 的 阻 塞 。 选 项 的 值 必 须 是 一 个 正 确 的 boolean 值 。 通 道 通 常 在 阻 塞 模 式 中 ; 如 果 把 一 个 通 道 转 换 到 非 阻 塞 模 式 中 , 它 将 影 响 gets、 read、 puts、 flush、 和 close 命 令 的 操 作 ; 详 见 这 些 命 令 的 文 档 。 要 使 非 阻 塞 模 式 正 常 工 作 , 应 用 必 须 使 用 Tcl 事 件 循 环 (例 如 , 通 过 调 用 Tcl_DoOneEvent 或 调 用 vwait 命 令 )。
-buffering
newValue 如 果 newValue 是
full, 则 I/O 系 统 直
到 它 的 内 部 缓
冲 变 满 或 调 用
flush 命 令 之 后 才
将 缓 冲 输 出 。
如 果 newValue 是
line, 则 I/O 系 统 将
在 输 出 一 个 换
行 符 的 时 候 自
动 的 刷 新 此 通
道 的 输 出 。 如
果 newValue 是 none,
则 I/O 系 统 将 在 每
次 输 出 操 作 之
后 自 动 刷 新 。
除 了 连 接 到 终
端 类 设 备 的 通
道 被 初 始 设 置
成 line 之 外 ,
-buffering 的 缺 省 被
设 置 成 full。 补
充 一 下 , stdin 和
stdout 被 初 始 设 置
成 line, 而 stderr 被
设 置 成 none。
-buffersize newSize
Newvalue必 须 是 一 个 整 数 ; 使 用 它 的 值 来 设 置 随 后 分 配 给 这 个 通 道 用 来 存 储 输 入 和 输 出 的 缓 冲 区 的 大 小 , 以 字 节 为 单 位 。 Newvalue 必 须 在 十 到 一 百 万 之 间 , 即 允 许 十 到 一 百 万 字 节 大 小 的 缓 冲 区 。
-encoding name
│ 用 这 个 选
项 来 指 定 通 道
的 编 码 , 为 了
在 Tcl 中 使 用 数 据
, 数 据 可 以 转
换 │ 成 Unicode 或
从 Unicode 转 换 过 来
。 例 如 , 要 使 Tcl
从 用 shiftjis │
编 码 的 日 文 文
件 中 读 取 字 符
并 正 确 的 处 理
和 显 示 其 中 的
内 容 , 编 码 就
应 该 │ 设 置
成 shiftjis。 此 后 ,
当 从 一 个 通 道
读 取 的 时 候 ,
在 这 个 日 文 文
件 中 │ 的 字
节 如 其 所 读 的
将 被 转 换 成 Unicode。
同 样 也 支 持 写
入 - 即 把 要 写 到
│ 通 道 中 的 Tcl
字 符 串 自 动 的
转 换 成 输 出 上
的 特 定 编 码 。
│ 如 果 一 个
文 件 包 含 纯 二
进 制 数 据 (例 如
, 一 个 JPEG 图 象 ),
这 种 通 道 应 当
│ 被 配 置 成
binary。 Tcl 将 对 这
种 文 件 中 的 数
据 不 赋 予 任 何
解 释 , 而 是 简
│ 单 的 读 或
写 原 始 (raw)的 字 节
。 使 用 Tcl binary 命
令 操 纵 这 种 原
始 字 节 │ 数
据 。 │ 给 新
打 开 的 通 道 的
缺 省 编 码 与 同
操 作 系 统 交 互
时 使 用 的 依 赖
于 平 台 或 本 地
│ 的 编 码 是
一 样 的 。 │
-eofchar char
-eofchar {inChar outChar} 这
个 选 项 支 持 DOS 文
件 系 统 , 它 使
用 Control-z (\x1a)作 为 文 件
结 束 的 标 记 符
(marker)。 如 果 char 不
是 一 个 空 串 ,
则 在 输 入 期 间
遇 到 这 个 字 符
时 指 示 (signal)文 件
结 束 。 对 于 输
出 , 在 关 闭 通
道 的 时 候 输 出
文 件 结 束 字 符
。 如 果 char 是 一
个 空 串 , 则 没
有 特 定 的 文 件
结 束 字 符 标 记
符 。 对 于 读 写
通 道 , 一 个 有
两 个 元 素 的 列
表 分 别 指 定 给
输 入 和 输 出 的
文 件 结 束 标 记
符 。 作 为 一 种
约 定 , 在 给 读
写 通 道 设 置 文
件 结 束 符 的 时
候 , 你 可 以 指
定 一 个 单 一 的
值 , 同 时 提 供
给 读 和 写 。 在
查 询 一 个 读 写
通 道 的 文 件 结
束 符 时 , 将 返
回 一 个 两 个 元
素 的 列 表 。 除
了 在 Windows 下 的 文
件 之 外 的 情 况
下 , -eofchar 缺 省 值
是 一 个 空 串 。
在 Windows 的 情 况 下
, 对 于 读 -eofchar 是
Control-z (\x1a), 对 于 写 是
空 串 。
-translation mode
-translation {inMode outMode} 在 Tcl
脚 本 中 总 是 使
用 一 个 单 一 的
换 行 符 (\n)来 表 示
一 行 的 结 束 。
但 是 在 实 际 的
文 件 和 设 备 中
的 行 结 束 在 不
同 的 平 台 上 可
能 有 不 同 的 表
示 , 甚 至 在 相
同 的 平 台 的 不
同 的 设 备 上 也
可 能 有 不 同 的
表 示 。 例 如 ,
在 UNIX 下 在 文 件 中
是 换 行 符 , 而
在 网 络 连 接 中
通 常 使 用 回 车
-换 行 (carriage-return-linefeed)序
列 。 在 输 入 上
(例 如 , 使 用 gets
和 read), Tcl I/O 系 统
自 动 的 把 外 部
的 行 结 束 表 示
转 换 成 换 行 符
。 在 输 出 上 (例
如 , 使 用 puts), I/O
系 统 把 换 行 符
转 换 成 外 部 的
行 结 束 表 示 。
缺 省 的 转 换 模
式 是 auto, 即 自
动 的 处 理 所 有
一 般 情 况 , 而
-translation 选 项 在 提
供 显 式 的 对 行
结 束 转 换 的 控
制 。 对 于 只 读
和 只 写 通 道 ,
与 -translation 相 关 联
的 值 是 一 个 单
一 的 项 目 。 对
于 读 写 通 道 这
个 值 是 一 个 两
个 元 素 的 列 表
; 列 表 的 第 一
个 元 素 是 读 转
换 模 式 , 第 二
个 元 素 是 写 转
换 模 式 。 作 为
一 种 约 定 , 在
给 读 写 通 道 设
置 行 结 束 符 的
时 候 , 你 可 以
指 定 一 个 单 一
的 值 , 同 时 提
供 给 读 和 写 。
在 查 询 一 个 读
写 通 道 的 行 结
束 符 时 , 将 返
回 一 个 两 个 元
素 的 列 表 。 当
前 支 持 下 列 值 :
auto 作 为 输 入 转 换 模 式 , |
auto 把 所 有 的 换 行 (lf)、 回 车 (cr)、 或 一 个 回 车 并 |
跟 随 一 个 换 行 (crlf) 作 为 行 结 束 表 示 。 行 结 束 表 示 甚 至 可 以 从 行 到 行 的 改 变 , 并 且 所 有 的 情 况 都 被 转 换 成 一 个 换 行 符 。 作 为 输 出 转 换 模 式 , auto 选 择 一 个 特 定 于 平 台 的 表 示 ; 对 于 套 接 口 , Tcl 在 所 有 平 台 上 均 选 择 crlf, 对 于 所 有 Unix 版 本 (flavor), 它 选 择 lf, 对 Macintosh 平 台 它 选 择 cr, 对 于 各 种 版 本 的 Windows 它 选 择 crlf。 对 于 输 入 和 输 出 二 者 , -translation的 缺 省 设 置 是 auto。
binary │ 不 进 行 行 结 束 转 换 。 除 了 binary模 式 额 外 的 把 文 件 结 束 符 设 置 成 空 串 (禁 │ 用 文 件 结 束 符 ), 并 且 把 编 码 设 置 成 binary (禁 用 编 码 过 滤 )之 外 , 它 │ 与 lf 模 式 基 本 一 致 。 详 细 信 息 参 见 -eofchar 和 -encoding。
cr 在 底 层 文 件 或 设 备 中 的 行 结 束 被 表 示 为 一 个 单 一 的 回 车 符 。 作 为 输 入 转 换 模 式 , |
cr模 式 把 回 车 符 转 换 成 换 行 符 。 作 为 输 出 转 换 模 式 , cr模 式 把 换 行 符 转 换 成 回 车 符 。 这 种 模 式 典 型 的 在 Macintosh 平 台 上 使 用 。
crlf 在 底 层 文 件 或 设 备 中 的 行 结 束 被 表 示 一 个 回 车 符 并 跟 随 一 个 换 行 符 。 作 为 输 入 转 换 模 式 , |
crlf模 式 把 回 车 换 行 序 列 转 换 成 换 行 符 。 作 为 输 出 模 式 , crlf 模 式 把 换 行 符 转 换 成 回 车 换 行 序 列 。 这 种 模 式 典 型 的 在 Windows 平 台 和 网 络 连 接 上 使 用 。
lf 在 底 层 文 件 或 设 备 中 的 行 结 束 被 表 示 为 一 个 单 一 的 换 行 符 。 在 这 种 模 式 下 在 输 入 或 输 出 期 间 没 有 转 换 发 生 。 这 种 模 式 典 型 的 在 |
UNIX 平 台 上 使 用 。
参 见 SEE ALSO
close(n), flush(n), gets(n), puts(n), read(n), socket(n)
关 键 字 KEYWORDS
blocking, buffering, carriage return, end of line, flushing, linemode, newline, nonblocking, platform, translation, encoding, filter, byte array, binary
[中 文 版 维 护 人 ]
寒 蝉 退 士
[中 文 版 最 新 更 新 ]
2001/08/02
《 中 国 Linux 论 坛 man 手 册 页 翻 译 计 划 》 :
跋
本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh