Provided by: manpages-zh_1.6.4.2-1_all bug

NAME

       fconfigure - 设置和获得一个通道上的选项

总览 SYNOPSIS

       fconfigure channelId
       fconfigure channelId name
       fconfigure channelId name value ?name value ...?
_________________________________________________________________

描述 DESCRIPTION

       fconfigure     命令设置和检索一个通道的选项。ChannelId   标识要设置或查询某个选项的那个通道。如果没有提供
       namevalue  参数,命令返回一个列表,它包含着这个通道上可变更的选项名字和值。如果提供了  name  而没有
       value    则命令返回给定选项的当前值。如果提供一对或多对   namevalue,命令把每个指名的选项设置成相应的
       value ;在这种情况下返回值是一个空串。

       所有通道都支持下面描述的选项。额外的,每个通道类型都可以增加只有它自己支持的选项。参见建立各种类型通道的
       命令的手册条目来得到这个特定类型的通道所支持的选项。例如,参见  socket命令的手册条目来得到增补的选项。

       -blocking boolean
              -blocking    选项决定在通道上的   I/O     操作是否可以导致进程无限的阻塞。选项的值必须是一个正确的
              boolean                       值。通道通常在阻塞模式中;如果把一个通道转换到非阻塞模式中,它将影响
              getsreadputsflush、和 close   命令的操作;详见这些命令的文档。要使非阻塞模式正常工作,应用必
              须使用 Tcl    事件循环(例如,通过调用 Tcl_DoOneEvent  或调用 vwait  命令)。

       -buffering newValue
              如果  newValuefull,则 I/O 系统直到它的内部缓冲变满或调用 flush   命令之后才将缓冲输出。如果
              newValueline,则  I/O  系统将在输出一个换行符的时候自动的刷新此通道的输出。如果  newValuenone,则   I/O  系统将在每次输出操作之后自动刷新。除了连接到终端类设备的通道被初始设置成  line  之
              外,-buffering  的缺省被设置成 full。补充一下,stdinstdout  被初始设置成 line,而 stderr 被设
              置成 none-buffersize newSize
              Newvalue必须是一个整数;使用它的值来设置随后分配给这个通道用来存储输入和输出的缓冲区的大小,以字节
              为单位。Newvalue  必须在十到一百万之间,即允许十到一百万字节大小的缓冲区。

       -encoding name                                                                                            2
              用这个选项来指定通道的编码,为了在 Tcl  中使用数据,数据可以转换成  Unicode  或从  Unicode  转换过 2
              来。例如,要使 Tcl 从用 shiftjis  编码的日文文件中读取字符并正确的处理和显示其中的内容,编码就应该 2
              设置成          shiftjis。此后,当从一个通道读取的时候,在这个日文文件中的字节如其所读的将被转换成 2
              Unicode。同样也支持写入 - 即把要写到通道中的 Tcl 字符串自动的转换成输出上的特定编码。              2

              如果一个文件包含纯二进制数据(例如,一个 JPEG 图象),这种通道应当被配置成 binary。Tcl  将对这种文件 2
              中的数据不赋予任何解释,而是简单的读或写原始(raw)的字节。使用Tcl  binary    命令操纵这种原始字节数 2
              据。                                                                                               2

              给新打开的通道的缺省编码与同操作系统交互时使用的依赖于平台或本地的编码是一样的。                   2

       -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)序列。在输入上    (例如,使用
              getsread),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的缺省设置是 autobinary                                                                                                    2
              不进行行结束转换。除了    binary模式额外的把文件结束符设置成空串(禁用文件结束符),并且把编码设置成 2
              binary (禁用编码过滤)之外,它与lf  模式基本一致。详细信息参见 -eofchar-encodingcr     在底层文件或设备中的行结束被表示为一个单一的回车符。作为输入转换模式,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 手册页翻译计划》:

       http://cmpp.linuxforum.net

       本页面中文版由中文 man 手册页计划提供。
       中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh

Tcl                                                    8.1                                      fconfigure(3tcl)