1mNAME0m
       read - Read from a channel

1mSYNOPSIS0m
       1mread 22m?1m-nonewline22m? 4mchannelId0m

       1mread 4m22mchannelId24m 4mnumChars0m


1mDESCRIPTION0m
       In  the  first  form, the 1mread 22mcommand reads all of the data from 4mchan-0m
       4mnelId24m up to the end of the file.  If the 1m-nonewline 22mswitch 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 4mnumChars24m 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  4mchannelId24m  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 1m-nonewline 22mswitch  is  ignored  if  the  command  returns
       before reaching the end of the file.

       1mRead 22mtranslates end-of-line sequences in the input into newline charac-
       ters according to the 1m-translation 22moption for  the  channel.   See  the
       1mfconfigure  22mmanual  entry  for a discussion on ways in which 1mfconfigure0m
       will alter input.


1mSEE ALSO0m
       file(n), eof(n), fblocked(n), fconfigure(n)


1mKEYWORDS0m
       blocking, channel, end of line, end of file, nonblocking, read,  trans-
