focal (3) ifdbuf.3bobcat.gz

Provided by: libbobcat-dev_5.02.00-1build1_amd64 bug

NAME

       FBB::IFdBuf - Input stream buffer initialized by a file descriptor

SYNOPSIS

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

DESCRIPTION

       FBB::IFdBuf  objects  may be used as a std::streambuf of std::istream objects to allow extractions from a
       file descriptor.

       File descriptors are not defined within the context of C++, but they can be  used  on  operating  systems
       that support the concept. Realize that using file descriptors introduces operating system dependencies.

NAMESPACE

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

INHERITS FROM

       std::streambuf

ENUMERATION

       The public enumeration Mode defined in the class FBB::IFdStreamBuf has the following values:

       o      CLOSE_FD, indicating that the file descriptor used by the object must be closed;

       o      KEEP_FD (the default) indicating that the file descriptor used by the object must not be closed.

CONSTRUCTORS

       o      IFdBuf():
              This constructor initializes the streambuf, without associating  it  to  a  file  descriptor,  and
              without  using buffering. The member reset can be used subsequently to associate the object with a
              file descriptor and optionally a buffer size. When the object is destroyed  or  if  the  mode-less
              overloaded version of the reset member is called, the file descriptor is not closed.

       o      IFdBuf(Mode mode):
              This  constructor  initializes  the  streambuf,  without  associating it to a file descriptor, and
              without using buffering. The member reset can be used subsequently to associate the object with  a
              file  descriptor  and  optionally  a buffer size. When the object is destroyed or if the mode-less
              overloaded version of the member reset is called, the Mode argument determines  whether  the  file
              descriptor will be closed or will remain open.

       o      IFdBuf(int fd, size_t n = 1):
              This  constructor initializes the streambuf, associating it to file descriptor fd, and an optional
              unget buffer size (by default having size 1).  When the object is destroyed or  if  the  mode-less
              overloaded version of the member reset is called, the file descriptor is not closed.

       o      IFdBuf(int fd, Mode mode, size_t n = 1):
              This  constructor initializes the streambuf, associating it to file descriptor fd, and an optional
              unget buffer size (by default having size 1).   When the object is destroyed or if  the  mode-less
              overloaded  version  of  the reset member is called, the Mode argument determines whether the file
              descriptor will be closed or will remain open.

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

MEMBER FUNCTIONS

       All members of std::streambuf are available, as FBB::IFdBuf inherits from this class.

       o      void close():
              The file descriptor used by the IFdBuf is closed, irrespective of the Mode that was specified when
              the  IFdBuf  object was constructed. Following close the IFdBuf object can no longer be used until
              one of its reset members has been called.

       o      int fd() const:
              The file descriptor used by the IFdBuf object is returned.  If the OFdBuf is not associated with a
              file descriptor -1 is returned.

       o      void reset(int fd, size_t n = 1):
              The  streambuf is (re)initialized, using file descriptor fd, and an optional unget buffer size (by
              default having size 1). When called repeatedly, the Mode specification used whem  the  object  was
              constructed determines whether the file descriptor will be closed or will remain open.

       o      void reset(int fd, Mode mode, size_t n = 1):
              The  streambuf  is  (re)initialized, using file descriptor fd, a file descriptor closing parameter
              and an optional unget buffer size (by default having size 1). Depending on the Mode  argument  the
              object’s  currently used file descriptor will be closed or will remain open when the IFdBuf object
              is destroyed.

EXAMPLE

       #include <unistd.h>

       #include <istream>
       #include <iostream>

       #include <bobcat/ifdbuf>

       using namespace std;
       using namespace FBB;

       int main(int argc, char **argv)
       {
                                  // define a streambuf of 20 or argv[1] characters
           IFdBuf buf{ STDIN_FILENO, argc == 1 ? 20 : stoul(argv[1]) };

           istream in{ &buf };

           cout << in.rdbuf();
       }

FILES

       bobcat/ifdbuf - defines the class interface

SEE ALSO

       bobcat(7), ifdstream(3bobcat), ofdbuf(3bobcat), std::streambuf

BUGS

       The member xsgetn(char *dest, std::streamsize n) sets istream::good() to false when fewer  bytes  than  n
       were read using istream::read(). Also see xsgetn’s description.

       Note  that  by default the provided file descriptors remain open. The complementary class ofdbuf(3bobcat)
       by default closes the file descriptor.

DISTRIBUTION FILES

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

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

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

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

       o      libbobcat1-dev_5.02.00-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’.

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

AUTHOR

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