Provided by: libbobcat-dev_6.02.02-1_amd64 bug

NAME

       FBB::StdExtractor - Runs external programs writing standard error

SYNOPSIS

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

DESCRIPTION

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

       StdExtractor  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  content 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::IFdBuf (private), std::istream

CONSTRUCTOR

       o      StdExtractor(size_t bufSize = 100):
              A bufSize argument may be specified: it defines the internal buffer  size  used  by
              the  StdExtractor’s  streambuf.  By  default  the  stdandard  input   stream is not
              handled.

       o      CoutExtractor(Mode mode, size_t bufSize = 100):
              The mode argument must be StdExtractor::CLOSE_STD. It indicates that  the  standard
              input  stream  is  redirected  to  /dev/null: the child processes cannot read their
              standard input streams. 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.

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 and standard error streams may be extracted from the StdExtractor 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 error output into the pipe.

EXAMPLE

       #include <iostream>

       #include <bobcat/cerrextractor>

       using namespace std;
       using namespace FBB;

       int main()
       {
           CerrExtractor 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/cerrextractor - provides the class interface

SEE ALSO

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

BUGS

       None reported.

BOBCAT PROJECT FILES

       o      https://fbb-git.gitlab.io/bobcat/: gitlab project page;

       o      bobcat_6.02.02-x.dsc: detached signature;

       o      bobcat_6.02.02-x.tar.gz: source archive;

       o      bobcat_6.02.02-x_i386.changes: change log;

       o      libbobcat1_6.02.02-x_*.deb: debian package containing the libraries;

       o      libbobcat1-dev_6.02.02-x_*.deb: debian package containing  the  libraries,  headers
              and manual pages;

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