NAME
       read - Read from a channel

SYNOPSIS
       read ?-nonewline? channelId

       read channelId numChars


DESCRIPTION
       In  the first form, the read command reads all of the data
       from channelId up to the end of the file.  If the  -nonew-
       line  switch  is  specified then the last character of the
       file is discarded if it is a newline.  In the second form,
       the  extra argument specifies how many characters to read.
       Exactly that many characters will be  read  and  returned,
       unless there are fewer than numChars left in the file;  in
       this case all the remaining characters are  returned.   If
       the  channel  is  configured to use a multi-byte encoding,
       then the number of characters read may not be the same  as
       the number of bytes read.

       If  channelId  is in nonblocking mode, the command may not
       read as many characters as requested: once  all  available
       input has been read, the command will return the data that
       is available rather than blocking for more input.  If  the
       channel  is  configured to use a multi-byte encoding, then
       there may actually be some bytes remaining in the internal
       buffers  that  do  not  form  a complete character.  These
       bytes will not be returned until a complete  character  is
       available  or  end-of-file  is  reached.   The  -nonewline
       switch is ignored if the command returns  before  reaching
       the end of the file.

       Read  translates  end-of-line  sequences in the input into
       newline characters according to  the  -translation  option
       for  the  channel.   See the fconfigure manual entry for a
       discussion on ways in which fconfigure will alter input.


SEE ALSO
       file(n), eof(n), fblocked(n), fconfigure(n)


KEYWORDS
       blocking, channel, end of line, end of file,  nonblocking,
       read, translation, encoding
