buffchan - buffered file-writing backend for InterNetNews

     buffchan [ -b ] [ -c lines ] [ -C seconds ] [ -d directory ] [ -f  fields
     ]  [  -m  map  ]  [  -p pidfile ] [ -l lines ] [ -L seconds ] [ -r ] [ -s
     file_format ] [ -u ]

     Buffchan reads lines from standard input and  copies  certain  fields  in
     each  line into files named by other fields within the line.  Buffchan is
     intended to be called by innd(8)  as an exploder feed.


     -b   Once buffchan opens a  file  it  keeps  it  open.   The  input  must
          therefore  never specify more files than can the number of available
          descriptors can keep open.  If the ``-b'' flag is used, the  program
          will allocate a buffer and attach it to the file using setbuf(3).

     -c   If the ``-c'' flag is used with  a  number  n,  then  buffchan  will
          close,  and  re-open,  a  file  after every n lines are written to a

     -C   Similarly, the ``-C'' flag may be used to  specify  that  all  files
          should be closed and re-opened every n seconds.

     -d   The ``-d'' flag may be used  to  specify  a  directory  the  program
          should  change  to  before starting.  If this flag is used, then the
          default for the ``-s'' flag is changed to be a simple ``%s.''

     -f   Buffchan input is interpreted as a set of lines.  Each line contains
          a  fixed  number of initial fields, followed by a variable number of
          filename fields.  All fields in a line are separated by  whitespace.
          The  default number of initial fields is one; the ``-f'' flag may be
          used to specify a different number of fields.  See  filechan(8)   for
          an example.

     -p   If the ``-p'' flag is used, the program will write a line containing
          its process ID (in text) to the specified file.

     -l   If the ``-l'' flag is used with a number n, then buffchan will  call
          fflush(3) after every n lines are written to a file.

     -L   If the ``-L'' flag is used with a number n, then all files  will  be
          flushed every n seconds.

     -r   By   default,   the   program   sets   its   standard    error    to
          <config$_PATH_ERRLOG>.  (typically /var/log/news/errlog.)

          To suppress this redirection, use the ``-r'' flag.

     -s   After the initial fields, each  remaining  field  names  a  file  to
          write.   The ``-s'' flag may be used to specify a format string that
          maps the field to a file name.  This is a sprintf(3)  format  string
          which  should have a single ``%s'' parameter which will be given the
          field.  The default value is  <config$_PATH_BATCHDIR>/%s  (typically
          /var/news/spool/out.going/%s.)  See the description of this flag  in
          filechan(8) .

     -u   If the ``-u'' flag is used,  the  program  will  request  unbuffered

     Buffchan can be invoked as an exploder feed (see newsfeeds(5) ).  As such,
     if  a  line  starts  with  an  exclamation  point it will be treated as a
     command.  There are three commands, described below:

          The ``flush'' command closes and re-opens all open  files;  ``flush\
          xxx'' which flushes only the specified site.  These are analogous to
          the ctlinnd(8)  ``flush'' command, and can be  achieved  by  doing  a
          ``send\  "flush\  xxx"''  command.   Applications  can tell that the
          ``flush'' has completed by renaming  the  file  before  issuing  the
          command;  buffchan  has  completed  the  command  when  the original
          filename re-appears.  if<config$HAVE_FCHMOD> == DO, then

          Buffchan also changes the access permissions of the file from  read-
          only for everyone to read-write for owner and group as it flushes or
          closes each output file.  It will change the modes back to read-only
          if it re-opens the same file.

     drop The ``drop'' command is similar to the ``flush'' command except that
          any  files  are  not  re-opened.   If  given  an  argument, then the
          specified site is dropped, otherwise all sites are  dropped.   (Note
          that  the  site  will  be restarted if the input stream mentions the
          site.)  When a ctlinnd ``drop site''  command  is  sent,  innd  will
          automatically  forward  the  command  to  buffchan  if the site is a
          funnel that feeds into this exploder.  To drop all  sites,  use  the
          ctlinnd ``send buffchan-site drop'' command.

          The map file (specified with the ``-m'' flag) is reloaded.

     Written by Rich $alz  <rsalz@uunet.uu.net>  for  InterNetNews.   This  is
     revision 1.11, dated 1996/10/29.

     ctlinnd(8) , filechan(8) , innd(8) , newsfeeds(5) .

You can find a summary and links related to this topic
as part of the Mib Software Usenet RKT.