'''`[http://www.tcl.tk/man/tcl/TclCmd/chan.htm%|%chan] configure`''', a [Tcl Commands%|%built-in] [Tcl] command, sets and retrieves options for [channel]s. It replaces the older `[fconfigure]`. ** Synopsis ** : '''chan configure''' ''channelId'' : '''chan configure''' ''channelId name'' : '''chan configure''' ''channelId name value'' ?''name value ...''? ** Documentation ** [http://www.tcl.tk/man/tcl/TclCmd/chan.htm%|%official reference]: ** See Also ** [channel]: [open]: [socket]: ** Examples ** Instruct Tcl to always send output to stdout immediately, whether or not it is to a terminal: ====== chan configure stdout -buffering none ====== Instruct Tcl to read pure bytes from a channel and write bytes to it, rather than characters: ====== chan configure $binaryDataFile -translation binary ====== ** Encoding ** The real name of the `binary` encoding is `iso8859-1`. `-encoding binary` was introduced as a migration aid to help with either the 7.6 -> 8.0 or the 8.0 to 8.1 transitions. `iso8859-1` has the privileged relationship with [Unicode] that its code-points are in a one-to-one relationship with `\u0000`-`\u007f` Caveat: `-encoding binary` turns off `-translation`, but `-encoding iso8859-1` does not. : ref [dgp] and [kbk] in [Tcl Chatroom] ,2013-12-02 ** stdout encoding bug ** [RS] 2015-04-13 - On Windows 7, stdout (if not redirected) breaks in a funny way when the encoding is changed - notice the "%" prompt: D:\>Tcl85\bin\tclsh % fconfigure stdout -encoding utf-8 ‥ ‥^C D:\>Tcl86\bin\tclsh % fconfigure stdout -encoding utf-8 ‥exit With longer output, the whole console (Cygwin bash in cmd.exe) freezes and can only be closed, but no longer be used. In cmd.exe without Cygwin, Ctrl-C makes the console responsive again. A workaround in both cases is to pipe stdout through [cat]. When stdout is redirected to a file, the problem is likewise not seen. This behavior was not the case in Tcl 8.4: D:\>Tcl84\bin\tclsh % fconfigure stdout -encoding utf-8 % ** Misc ** [LV] 2008 Feb 28: Some of the wiki pages talk about the construct, === chan configure $serial_port -mode "$baudRate,$plex,$bits,$polarity" === or some such thing. The -mode flag, used for specifying baud rate, etc, has moved to [open] now. I don't know how one would change those values on an open descriptor... <> Command