Provided by: libbobcat-dev_4.08.02-2build1_amd64 bug

NAME

       FBB::CoutExtractor - Runs external programs writing standard output

SYNOPSIS

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

DESCRIPTION

       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 processes.

       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 @).

NAMESPACE

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

INHERITS FROM

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

CONSTRUCTOR

       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.

MEMBERS

       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 command.

              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.

PROTECTED MEMBER

       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.

EXAMPLE

       #include <iostream>

       #include <bobcat/coutextractor>

       using namespace std;
       using namespace FBB;

       int main()
       {
           CoutExtractor extractor;

           extractor.execute("/bin/cat driver.cc");

           cout << extractor.rdbuf();

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

           extractor.execute("/bin/cat driver.cc");

           cout << extractor.rdbuf();

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

       }

FILES

       bobcat/coutextractor - provides the class interface

SEE ALSO

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

BUGS

       None reported.

DISTRIBUTION FILES

       o      bobcat_4.08.02-x.dsc: detached signature;

       o      bobcat_4.08.02-x.tar.gz: source archive;

       o      bobcat_4.08.02-x_i386.changes: change log;

       o      libbobcat1_4.08.02-x_*.deb: debian package holding the libraries;

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

       o      http://sourceforge.net/projects/bobcat: public archive location;

BOBCAT

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

COPYRIGHT

       This is free software, distributed under the terms of the GNU General Public License (GPL).

AUTHOR

       Frank B. Brokken (f.b.brokken@rug.nl).