Provided by: libbobcat-dev_5.00.02-2_amd64 bug


       FBB::CoutExtractor - Runs external programs writing standard output


       #include <bobcat/coutextractor>
       Linking option: -lbobcat


       The  FBB::CoutExtractor  class  offers  a  basic  interface  for calling external programs
       (so-called child processes) writing their standard output streams. The standard input  and
       standard   error   streams   of  the  child  processes  by  default  are  not  handled  by
       ttCoutExtractor) objects. The child’s standard output is read  through  the  CoutExtractor
       object:  information  written  by  the  child  process  to  its  standard output stream is
       extracted or read from CoutExtractor object. The PATH environment  variable  is  not  used
       when calling child processes: child process programs must be specified using paths.

       CoutExtractor  objects  may  repeatedly  be  used  to  execute the same or different child

       Arguments passed to child  processes  may  be  surrounded  by  double  or  single  quotes.
       Arguments surrounded by double quotes have their double quotes removed, while interpreting
       any escape-sequences that may have been used within. Arguments surrounded by single quotes
       have  their  single  quotes  removed,  while  accepting  their contents as-is. In addition
       unquoted escape-sequences may be specified:  those  escape  sequences  are  evaluated  and
       replaced by their intended characters (e.g., \100 is converted to @).


       All  constructors,  members,  operators  and manipulators, mentioned in this man-page, are
       defined in the namespace FBB.


       FBB::Exec (private), FBB::IFdBuf (private), std::istream


       o      CoutExtractor(size_t bufSize = 100):
              A bufSize argument may be specified: it defines the internal buffer  size  used  by
              the  CoutExtractor’s  streambuf.  By default the stdandard input and standard error
              streams are not handled.

       o      CoutExtractor(Mode mode, size_t bufSize = 100):
              The mode argument must be CoutExtractor::CLOSE_STD. It indicates that the  standard
              input  and  standard error streams are redirected to /dev/null: the child processes
              cannot read their standard input streams and any standard error output generated by
              child  processes  is  ignored.  A bufSize argument may be specified: it defines the
              internal buffer size used by the CinInserter’s streambuf.

       Copy and move constructors (and assignment operators) are not available.


       o      void execute(std::string const &cmd):
              The argument specifies the command to execute: the command itself must be specified
              as  a  path  (the  PATH  environment variable isn’t used).  This member immediately
              returns, after which information written by  the  child  process  to  its  standard
              output stream may be extracted from the CoutExtractor object.

              Once  execute has returned it can be called again, either using the same or another

              Arguments passed to the program to be executed as child process may  optionally  be
              specified   using  single  or  double  quotes,  as  described  in  this  man-page’s
              DESCRIPTION section.

       o      int ret() const:
              Once execute has returned this member provides the actual exit code  of  the  child
              process. Its value equals -1 before the first exectue call.


       o      Pipe &childOutPipe():
              If  derived  classes  need to override the redirections-members then they probabaly
              need access to the pipe written by  the  child  process.  This  member  provides  a
              reference  to  that  pipe. By default the parent process reads information from the
              pipe, while the child process inserts its standard output into the pipe.


       #include <iostream>

       #include <bobcat/coutextractor>

       using namespace std;
       using namespace FBB;

       int main()
           CoutExtractor extractor;


           cout << extractor.rdbuf();

           cerr << "Returning: " << extractor.ret() << "\n"


           cout << extractor.rdbuf();

           cerr << "Returning: " << extractor.ret() << ’\n’;



       bobcat/coutextractor - provides the class interface


       bobcat(7),   cerrextractor(3bobcat),   cininserter(3bobcat),   execl(3),    exec(3bobcat),
       fork(3bobcat), process(3bobcat), stdextractor(3bobcat).


       None reported.


       o      bobcat_5.00.02-x.dsc: detached signature;

       o      bobcat_5.00.02-x.tar.gz: source archive;

       o      bobcat_5.00.02-x_i386.changes: change log;

       o      libbobcat1_5.00.02-x_*.deb: debian package holding the libraries;

       o      libbobcat1-dev_5.00.02-x_*.deb:  debian  package holding the libraries, headers and
              manual pages;

       o public archive location;


       Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.


       This is free software, distributed under the terms  of  the  GNU  General  Public  License


       Frank B. Brokken (