summaryrefslogtreecommitdiffstats
path: root/doc/chan.n
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2005-06-06 23:45:37 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2005-06-06 23:45:37 (GMT)
commite9429305435f6edac06ba3dc914e5658705e160a (patch)
tree374c84c5df35cf33d6fe30319969eb01c100c078 /doc/chan.n
parent6580b2352407aa1b0f314552899f301558bc3113 (diff)
downloadtcl-e9429305435f6edac06ba3dc914e5658705e160a.zip
tcl-e9429305435f6edac06ba3dc914e5658705e160a.tar.gz
tcl-e9429305435f6edac06ba3dc914e5658705e160a.tar.bz2
TIP#208 implementation
It's crude (especially in the tests and docs department) and incomplete (no truncation on non-POSIX platforms).
Diffstat (limited to 'doc/chan.n')
-rw-r--r--doc/chan.n119
1 files changed, 119 insertions, 0 deletions
diff --git a/doc/chan.n b/doc/chan.n
new file mode 100644
index 0000000..19753cd
--- /dev/null
+++ b/doc/chan.n
@@ -0,0 +1,119 @@
+'\"
+'\" Copyright (c) 2005 Donal K. Fellows
+'\"
+'\" See the file "license.terms" for information on usage and redistribution
+'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+'\"
+'\" RCS: @(#) $Id: chan.n,v 1.1 2005/06/06 23:45:41 dkf Exp $
+.so man.macros
+.TH chan n 8.5 Tcl "Tcl Built-In Commands"
+.BS
+'\" Note: do not modify the .SH NAME line immediately below!
+.SH NAME
+chan \- Read, write and manipulate channels
+.SH SYNOPSIS
+\fBchan \fIoption\fR ?\fIarg arg ...\fR?
+.BE
+
+.SH DESCRIPTION
+.PP
+This command provides several operations for reading from, writing to
+and otherwise manipulating open channels (such as have been created
+with the \fBopen\fR and \fBsocket\fR commands). \fIOption\fR indicates
+what to do with the channel; any unique abbreviation for \fIoption\fR
+is acceptable. Valid options are:
+.TP
+\fBchan blocked \fIchannelId\fR
+Test whether the last input operation on the channel called
+\fIchannelId\fR failed because it would have otherwise caused the
+process to block.
+.TP
+\fBchan close \fIchannelId\fR
+Close and destroy the channel called \fIchannelId\fR. Note that this
+deletes all existing file-events registered on the channel.
+.TP
+\fBchan configure \fIchannelId\fR ?\fIoptionName\fR? ?\fIvalue\fR? ?\fIoptionName value\fR?...
+Query or set the configuration options of the channel named
+\fIchannelId\fR (see \fBfconfigure\fR for details).
+'\" FIXME: describe common channel options here and refer to creator
+'\" commands for special option descriptions.
+.TP
+\fBchan copy \fIinput output\fR ?\fB\-size \fIsize\fR? ?\fB\-command \fIcallback\fR?
+Copy the contents of the channel \fIinput\fR, which must have been
+opened for reading, to the channel \fIoutput\fR, which must have been
+opened for writing. If \fIsize\fR is specified, only that many bytes
+will be transferred. If \fIcallback\fR is specified, this command
+returns immediately and arranges for \fIcallback\fR to be called when
+the requested transfer has completed or an error occurs (assuming that
+the event loop is running) with extra arguments appended to
+\fIcallback\fR to indicate what happened.
+.TP
+\fBchan eof \fIchannelId\fR
+Test whether the last input operation on the channel called
+\fIchannelId\fR failed because the end of the data stream was reached.
+.TP
+\fBchan event \fIchannelId mode\fR ?\fIscript\fR?
+Arrange for the Tcl script \fIscript\fR to be called whenever the
+channel called \fIchannelId\fR enters the state described by
+\fImode\fR (which must be either \fBreadable\fR or \fBwritable\fR). If
+\fIscript\fR is omitted, the currently installed script is returned.
+The callback is only performed if the event loop is being serviced.
+.TP
+\fBchan flush \fIchannelId\fR
+Ensures that all pending output for the channel called \fIchannelId\fR
+is written.
+.TP
+\fBchan gets \fIchannelId\fR ?\fIvarName\fR?
+Reads a line from the channel called \fIchannelId\fR. If \fIvarName\fR
+is not specified, the result of the command will be the line that has
+been read (without a trailing newline character) or an empty string
+upon error. If \fIvarName\fR is specified, the line that has been read
+will be written to the variable called \fIvarName\fR and result will
+be the number of characters that have been read or -1 if an error
+occurred.
+.TP
+\fBchan names\fR ?\fIpattern\fR?
+Produces a list of all channel names. If \fIpattern\fR is specified,
+only those channel names that match it (according to the rules of
+\fBstring match\fR) will be returned.
+.TP
+\fBchan puts\fR ?\fB\-nonewline\fR? ?\fIchannelId\fR? \fIstring\fR
+Writes \fIstring\fR to the channel named \fIchannelId\fR (by default,
+to the standard output stream) followed by a newline character. If the
+optional flag \fB\-nonewline\fR is given, no trailing newline
+character is written.
+.TP
+\fBchan read \fIchannelId\fR ?\fInumChars\fR?
+.TP
+\fBchan read \fR?\fB\-nonewline\fR? \fIchannelId\fR
+In the first form, the result will be the next \fInumChars\fR
+characters read from the channel named \fIchannelId\fR; if
+\fInumChars\fR is omitted, all characters up to the point when the
+channel would signal a failure (whether an end-of-file, blocked or
+other error condition) are read. In the second form (i.e. when
+\fInumChars\fR has been omitted) the flag \fB\-nonewline\fR may be
+given to indicate that any trailing newline in the string that has
+been read should be trimmed.
+.TP
+\fBchan seek \fIchannelId offset\fR ?\fIorigin\fR?
+Sets the current position within the underlying data stream for the
+channel named \fIchannelId\fR to be \fIoffset\fR bytes relative to
+\fIorigin\fR. \fIOrigin\fR should be one of \fBstart\fR (the default
+origin), \fBcurrent\fR or \fBend\fR.
+.TP
+\fBchan tell \fIchannelId\fR
+Reports the current byte offset within the underlying data stream for
+the channel named \fIchannelId\fR.
+.TP
+\fBchan truncate \fIchannelId\fR ?\fIlength\fR?
+Sets the byte length of the underlying data stream for the channel
+named \fIchannelId\fR to be \fIlength\fR (or to the current byte
+offset within the underlying data stream if \fIlength\fR is omitted).
+
+.SH "SEE ALSO"
+close(n), eof(n), fblocked(n), fconfigure(n), fcopy(n), file(n),
+fileevent(n), flush(n), gets(n), open(n), puts(n), read(n), seek(n),
+socket(n), tell(n)
+
+.SH KEYWORDS
+channel, input, output, events, offset