summaryrefslogtreecommitdiffstats
path: root/doc/read.n
diff options
context:
space:
mode:
Diffstat (limited to 'doc/read.n')
-rw-r--r--doc/read.n10
1 files changed, 5 insertions, 5 deletions
diff --git a/doc/read.n b/doc/read.n
index 5398b08..a64e079 100644
--- a/doc/read.n
+++ b/doc/read.n
@@ -16,7 +16,6 @@ read \- Read from a channel
.sp
\fBread \fIchannelId numChars\fR
.BE
-
.SH DESCRIPTION
.PP
In the first form, the \fBread\fR command reads all of the data from
@@ -51,36 +50,37 @@ newline characters according to the \fB\-translation\fR option
for the channel.
See the \fBfconfigure\fR manual entry for a discussion on ways in
which \fBfconfigure\fR will alter input.
-
.SH "USE WITH SERIAL PORTS"
'\" Note: this advice actually applies to many versions of Tcl
-
+.PP
For most applications a channel connected to a serial port should be
configured to be nonblocking: \fBfconfigure \fIchannelId \fB\-blocking
\fI0\fR. Then \fBread\fR behaves much like described above. Care
must be taken when using \fBread\fR on blocking serial ports:
.TP
\fBread \fIchannelId numChars\fR
+.
In this form \fBread\fR blocks until \fInumChars\fR have been received
from the serial port.
.TP
\fBread \fIchannelId\fR
+.
In this form \fBread\fR blocks until the reception of the end-of-file
character, see \fBfconfigure -eofchar\fR. If there no end-of-file
character has been configured for the channel, then \fBread\fR will
block forever.
.SH "EXAMPLE"
+.PP
This example code reads a file all at once, and splits it into a list,
with each line in the file corresponding to an element in the list:
+.PP
.CS
set fl [open /proc/meminfo]
set data [\fBread\fR $fl]
close $fl
set lines [split $data \en]
.CE
-
.SH "SEE ALSO"
file(n), eof(n), fblocked(n), fconfigure(n), Tcl_StandardChannels(3)
-
.SH KEYWORDS
blocking, channel, end of line, end of file, nonblocking, read, translation, encoding