Provided by: libbobcat-dev_6.07.01-2_amd64 bug

NAME

       FBB::MmapBuf - a std::streambuf using mmap(2) for file I/O

SYNOPSIS

       #include <bobcat/mmapbuf>

       Linking option: -lbobcat

DESCRIPTION

       The mmap(2) functions map files in the virtual address space of the calling process. Using mmap in C++ is
       doable, but complex. The MmapBuf std::streambuf class embeds the features of mmap(2), allowing the use of
       C++’s streams instead of using the raw mmap calls. the FBB::Mmapbase class defines a std::streambuf which
       can be used by istream, ostream, and iostream objects.

       An  std::exception  is thrown, and an error message is written to cerr if the details about the specified
       filename (cf. section CONSTRUCORS cannot be determined, or when mmap or munmap return errors.

NAMESPACE

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

INHERITS FROM

       std::streambuf

CONSTRUCTORS

       o      MmapBuf():
              The default constructor merely constructs an empty MmapBuf object. To change it to a usable object
              use move assignment;

       o      MmapBuf(std::string  const  &fname,  std::ios::openmode  openMode, char const *bufSize = 0, mode_t
              mode = 0644):
              The constructor initializes the MmapBuf object for a file named fname. The  openmode  can  be  any
              combination  of  the  std::ios::openmode  values.  The  required  values are usually provided when
              constructing ImapStream, OmapStream, or IOmapStream objects (cf. section SEE ALSO below).

              The opnemMode parameter specifies how fname is used. The standard ios::in,  ios::out,  ios::trunc,
              ios::app, and ios::ate modes are supported.

              By  default  bfMmapBuf  uses  a  mapping  buffer  size  of  10  times the standard page size, (cf.
              sysconf(3), and the member pageSize below). The size of the mapping buffer can also  be  specified
              using the bufSize parameter. To specify it use a value followed by K, M, or G, representing, resp.
              1024,  1024  *  1024, and 1024 * 1024 * 1024 bytes. The final buffer size is at least equal to the
              standard page size. When a larger value is specified the used buffer size is set  to  specified  /
              pageSize * pageSize.

       The  mode  parameter specifies the user/group/other access mode which is used when the file is created by
       MmapBuf. Its default value specifies read/write access by the user, and  read access by others.  )

       The move constructor and move assignment operator are available.
       The copy constructor and copy assignment operator are not available.

MEMBER FUNCTIONS

       All members of std::stringstream are available, as FBB::MmapBuf inherits from that class.

       o      size_t bufSize() const:
              returns the used t(mmap) buffer size;

       o      size_t fileSize() const:
              returns the size of the used file. The size is updated to a larger size when  writing  beyond  the
              current  file  size.  Once  MmapBuf objects cease to exist the used file’s size is modified to the
              current fileSize value. The size of a file that can only be read is never altered.

       o      size_t pageSize() const:
              returns the smallest page size used by t(mmap).

EXAMPLE

       An example is provided in bobcat’s source archive and gitlab repository at bobcat/mmapbuf/demo.

FILES

       bobcat/mmapbuf - defines the class interface

SEE ALSO

       bobcat(7),  chmod(2),   immapstream(3bobcat),   iommapstream(3bobcat),   ommapstream(3bobcat),   mmap(2),
       sysconf(3)

BUGS

       None Reported.

BOBCAT PROJECT FILES

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

       Debian Bobcat project files:

       o      libbobcat6: debian package containing the shared library, changelog and copyright note;

       o      libbobcat-dev:  debian package containing the static library, headers, manual pages, and developer
              info;

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

libbobcat-dev_6.07.01                               2005-2025                              FBB::MmapBuf(3bobcat)