Scroll to navigation

FBB::OFdStreambuf(3bobcat) File Descriptor Output Stream Buffer FBB::OFdStreambuf(3bobcat)

NAME

FBB::OFdStreambuf - Output stream buffer initialized by a file descriptor

SYNOPSIS

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

DESCRIPTION

FBB::OFdStreambuf objects may be used as a std::streambuf of std::ostream objects to allow insertions into 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::OFdStreamBuf has the following values:

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

CONSTRUCTORS

OFdStreambuf():
This constructor initializes the streambuf, without associating it to a file descriptor, and without using buffering. The member open() can be used to associate the object later on with a file descriptor and optionally a buffer size. When the object is destroyed or if the mode-less overloaded version of the open member is called, the file descriptor will be closed.
OFdStreambuf(Mode mode):
This constructor initializes the streambuf, without associating it to a file descriptor, and without using buffering. The member open() can be used to associate the object later on with a file descriptor and optionally a buffer size. When the object is destroyed or if the mode-less overloaded version of the open member is called, the Mode argument determines whether the file descriptor will be closed or will remain open.
OFdStreambuf(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 open is called subsequently, or if the object is destroyed the provided file descriptor will be closed.
OFdStreambuf(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 open member is called, the file descriptor will be closed.
OFdStreambuf(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 open member is called, the Mode argument determines whether the file descriptor will be closed or will remain open.

The copy and move constructors (and assignment operators) are not available.

MEMBER FUNCTIONS

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

void close():
The file descriptor used by the OFdStreambuf is closed, irrespective of the Mode that was specified when the OFdStreambuf object was constructed. Following close the OFdStreambuf object can no longer be used until one of its open members has been called.
int fd() const:
The file descriptor used by the OFdStreambuf object is returned. If the OFdStreambuf is not associated with a file descriptor -1 is returned.
void open(int xfd, 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.
void open(int xfd, 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 IFdStreambuf object is destroyed.

EXAMPLE

#include <unistd.h>
#include <ostream>
#include <string>
#include "../ofdstreambuf"
using namespace std;
using namespace FBB;
int main(int argc, char **argv)
{

// define a streambuf of 20 or argv[1] characters
OFdStreambuf buf{ STDOUT_FILENO, argc == 1 ? 20 : stoul(argv[1]) };
ostream out{ &buf };
out << "First line, just to start the insertions\n" <<
argv[0] << endl << // using an explicit flush
argc << "\n"
"a long line to end this multiple-insertions statement\n"; }

FILES

bobcat/ofdstreambuf - defines the class interface

SEE ALSO

bobcat(7), ifdstreambuf(3bobcat), ofdstream(3bobcat), std::streambuf

BUGS

None reported

DISTRIBUTION FILES

bobcat_4.09.00-x.dsc: detached signature;
bobcat_4.09.00-x.tar.gz: source archive;
bobcat_4.09.00-x_i386.changes: change log;
libbobcat1_4.09.00-x_*.deb: debian package holding the libraries;
libbobcat1-dev_4.09.00-x_*.deb: debian package holding the libraries, headers and manual pages;
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).

2005-2019 libbobcat-dev_4.09.00-x.tar.gz