Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
memchan(n)							    memchan(n)


       memchan - Create	and manipulate memory channels

       package require Tcl

       package require memchan

       memchan ?-initial-size len?


       This  manpage  documents	 both the overall package and the command mem-
       chan. The package itself	provides a number of in-memory channels	 which
       can utilized to

       o      capture  stream-like information in a natural way	instead	of us-
	      ing set and append to manipulate strings

       o      or to transfer data between interpreters,	in the same thread  or

       memchan ?-initial-size len?
	      creates  a chunk-oriented	in-memory channel and returns its han-
	      dle. If an initial size is specified the system  will  pre-allo-
	      cate  len	bytes of buffer	space for the contents.	This is	no re-
	      striction	on the ultimate	size of	the channel,  it  will	always
	      grow  as	much  as  is necessary to accommodate the data written
	      into it.

	      The channels created here	 can  be  transferred  between	inter-
	      preters  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	connection between two interpreters.

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

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

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

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

       The channels are	also readable if they contain more than	zero bytes and
       the seek	location is not	and the	end of the channel. Under these	condi-
       tions a readable	fileevent-handler will fire continuously.

       Note  that  writing  to	such a channel usually occurs at the end, thus
       suppressing readable events. This also means that users	have  to  take
       care  to	seek the channel to a location before the end before trying to
       read data back.

       fifo, fifo2, null, random, zero

       channel,	chunk, i/o, in-memory channel, memchan

       Copyright (c) 1996-2003 Andreas Kupries <>

Memory channels			      2.2			    memchan(n)


Want to link to this manual page? Use this URL:

home | help