ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



fifo(n)                                                                                              fifo(n)



NAME
       fifo - Create and manipulate u-turn fifo channels

SYNOPSIS
       package require Tcl

       package require memchan

       fifo


DESCRIPTION
       fifo   creates a stream-oriented in-memory channel and returns its handle. There is no restriction on
              the ultimate size of the channel, it will always grow as much as is  necessary  to  accomodate
              the data written into it.

              In contrast to the channels generated by memchan a channel created here effectively represents
              an U-turn. All data written into it can be read out, but only in the  same  order.  This  also
              means that a fifo channel is not seekable.

              The  channels  created  here  can  be  transfered  between interpreters in the same thread and
              between threads, but only as a whole. It is not possible to use them to create a bi- or unidi-rectional unidirectional
              rectional connection between two interpreters.

       Memory  channels  created by fifo provide two read-only options which can be queried via the standard
       fconfigure command. These are

       -length
              The value of this option is the number of bytes currently stored in the queried  memory  chan-nel. channel.
              nel.

       -allocated
              The  value  of  this  option  is the number of bytes currently allocated by the queried memory
              channel. This number is at least as big as the value of -length.

       As the channels generated by fifo grow as necessary they are  always  writable.  This  means  that  a
       writable fileevent-handler will fire continuously.

       The channels are also readable if they contain more than zero bytes. Under this conditions a readable
       fileevent-handler will fire continuously.

NOTES
       One possible application of memory channels created by memchan or fifo is as temporay storage  device
       to  collect data coming in over a pipe or a socket. If part of the processing of the incoming data is
       to read and process header bytes or similar fifo are easier to use as they  do  not  require  seeking
       back and forth to switch between the assimilation of headers at the beginning and writing new data at
       the end.

SEE ALSO
       fifo2, memchan, null

KEYWORDS
       channel, fifo, i/o, in-memory channel, memchan, stream

COPYRIGHT
       Copyright (c) 1996-2003 Andreas Kupries <andreas_kupries@users.sourceforge.net>




Memory channels                                      2.1                                             fifo(n)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.