/usr/share/doc/libbobcat3-dev/man/iostreambuf.3.html is in libbobcat-dev 3.19.01-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | <html><head>
<title>FBB::IOStreambuf</title>
<link rev="made" href="mailto:Frank B. Brokken: f.b.brokken@rug.nl">
</head>
<body text="#27408B" bgcolor="#FFFAF0">
<hr>
<h1>FBB::IOStreambuf</h1>
<h2>libbobcat-dev_3.19.01-x.tar.gz</h2>
<h2>2005-2013</h2>
<html><head>
<link rev="made" href="mailto:Frank B. Brokken: f.b.brokken@rug.nl">
</head>
<body text="#27408B" bgcolor="#FFFAF0">
<hr>
<h1></h1>
<html><head>
<title>FBB::IOStreambuf(3bobcat)</title>
<link rev="made" href="mailto:Frank B. Brokken: f.b.brokken@rug.nl">
</head>
<body text="#27408B" bgcolor="#FFFAF0">
<hr>
<h1>FBB::IOStreambuf(3bobcat)</h1>
<h2>libbobcat-dev_3.19.01-x.tar.gz Streambuf doing I/O</h2>
<h2>2005-2013</h2>
<p>
<h2>NAME</h2>FBB::IOStreambuf - streambuf allowing input and output operations
<p>
<h2>SYNOPSIS</h2>
<strong>#include <bobcat/iostreambuf></strong><br>
Linking option: <em>-lbobcat</em>
<p>
<h2>DESCRIPTION</h2>
This class implements a specialization of the <strong>std::streambuf</strong> class,
allowing input operations from and output operations to different files. It is
intended to be used in combination with <strong>FBB::IOStream</strong>, thus allowing all
stream-based input and output operations using the same object without the
need to use <em>seek</em>-operations. Using an <strong>FBB::IOStream</strong> object it is,
e.g., possible to construct two-way communications using pipes, much like the
facilities offered by sockets.
<p>
If the streams that will be associated with the <strong>IOStreambuf</strong> object
support seeking, then the <strong>IOStreambuf</strong> will do so to. Seeking might also be
availble for a single stream (either the <strong>std::istream</strong> or the
<strong>std::ostream</strong>).
<p>
When the <strong>IOStreambuf</strong> object goes out of scope, its associated
<strong>std::ostream</strong> object is flushed.
<p>
<h2>NAMESPACE</h2>
<strong>FBB</strong><br>
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace <strong>FBB</strong>.
<p>
<h2>INHERITS FROM</h2>
<strong>std::streambuf</strong>
<p>
<h2>CONSTRUCTORS</h2>
<ul>
<li> <strong>IOStreambuf()</strong>:<br>
The default constructor results in a <strong>IOStreambuf</strong> object that
cannot be immediately used. Its member <strong>open()</strong> must be called first.
<li> <strong>IOStreambuf(std::istream &in, std::ostream &out)</strong>:<br>
This constructor associates the <strong>IOStreambuf</strong> object with a
<strong>std::istream</strong> and a <strong>std::ostream</strong>. All output operations will be passed
on to the <strong>std::ostream</strong>, all input operations to the <strong>std::istream</strong>. The
streams passed to <strong>IOStreambuf()</strong> should outlive the <strong>IOStreambuf</strong>
object.
</ul>
Copy and move constructors is not available.
<p>
<h2>MEMBER FUNCTIONS</h2>
All members of <strong>std::streambuf</strong> are
available, as <strong>FBB::IOStreambuf</strong> inherits from these classes.
<ul>
<li> <strong>void open(std::istream &in, std::ostream &out)</strong>:<br>
This member (re)associates the <strong>IOStreambuf</strong> object with a
<strong>std::istream</strong> and a <strong>std::ostream</strong>. All output operations will be passed
on to the <strong>std::ostream</strong>, all input operations to the <strong>std::istream</strong>. The
streams passed to <strong>IOStreambuf()</strong> should outlive the <strong>IOStreambuf</strong>
object. If this member is called for an <strong>IOStreambuf</strong> object already
associated with an <strong>std::ostream</strong> object, the already associated
<strong>std::ostream</strong> object is flushed before setting up the new association.
</ul>
<p>
<h2>VIRTUAL PROTECTED MEMBER FUNCTIONS</h2>
<p>
The following <strong>std::streambuf</strong> member functions should only be called
when the <strong>FBB::Streambuf</strong> object is associated with <strong>std::istream</strong> and
<strong>std::ostream</strong> objects (i.e., they should not be called between the
construction of a default <strong>FBB:IOStreambuf</strong> object and a subsequent call of
<strong>IOStreambuf::open()</strong>):
<p>
The members listed in this section implement the tasks of
comparably named virtual function in the class's private interface. This
separates the redefinable interface from the user-interface. The class
<strong>IOStreamBuf</strong> can, in accordance with Liskov's Substitution Principle, be
used as a <em>std:streambuf</em>; but it also offers facilities for classes
deriving from <strong>IOStreamBuf</strong>. These facilities are listed here.
<p>
<ul>
<li> <strong>pos_type pSeekoff(off_type offset, std::ios::seekdir way,
std::ios::openmode mode =
std::ios::in | std::ios::out)</strong>:<br>
With seekable streams, repositions the associated <strong>std::istream</strong>
or <strong>std::ostream</strong> is repositioned to offset <em>offset</em>, relative to
<em>way</em>.
<li> <strong>pos_type pSeekpos(off_type offset, std::ios::openmode mode =
std::ios::in | std::ios::out)</strong>:<br>
With seekable streams, repositions the associated <strong>std::istream</strong>
or <strong>std::ostream</strong> is repositioned to offset <em>offset</em>, relative to
the beginning of the stream.
<li> <strong>int pSync()</strong>:<br>
This member flushes the associated <strong>std::ostream</strong> object.
<li> <strong>std::streamsize pXsputn(char const *buffer, std::streamsize n)</strong>:<br>
This member inserts <em>n</em> characters from <em>buffer</em> into the
associated <strong>std::ostream</strong> stream.
</ul>
<p>
<h2>EXAMPLE</h2>
See the example provided with <strong>process</strong>(3bobcat).
<p>
<h2>FILES</h2>
<em>bobcat/iostreambuf</em> - defines the class interface
<p>
<h2>SEE ALSO</h2>
<strong>bobcat</strong>(7), <strong>iostream</strong>(3bobcat), <strong>process</strong>(3bobcat)
<p>
<h2>BUGS</h2>
None reported.
<p>
<h2>DISTRIBUTION FILES</h2>
<ul>
<li> <em>bobcat_3.19.01-x.dsc</em>: detached signature;
<li> <em>bobcat_3.19.01-x.tar.gz</em>: source archive;
<li> <em>bobcat_3.19.01-x_i386.changes</em>: change log;
<li> <em>libbobcat1_3.19.01-x_*.deb</em>: debian package holding the
libraries;
<li> <em>libbobcat1-dev_3.19.01-x_*.deb</em>: debian package holding the
libraries, headers and manual pages;
<li> <em>http://sourceforge.net/projects/bobcat</em>: public archive location;
</ul>
<p>
<h2>BOBCAT</h2>
Bobcat is an acronym of `Brokken's Own Base Classes And Templates'.
<p>
<h2>COPYRIGHT</h2>
This is free software, distributed under the terms of the
GNU General Public License (GPL).
<p>
<h2>AUTHOR</h2>
Frank B. Brokken (<strong>f.b.brokken@rug.nl</strong>).
<p>
|