# FBB::TempStream(3bobcat)

## Temporary fstream
(libbobcat-dev_6.06.02)

## 2005-2024

## NAME

FBB::TempStream - Temporary fstream

## SYNOPSIS

#include <bobcat/tempstream>

## DESCRIPTION

FBB::TempStream objects are temporary std::fstreams opened with mode 0600 (user only read+write). The file created by a TempStream object is removed from the file system once the TempStream object goes out of scope.

A TempStream object creates an empty file, and information can immediately be inserted into the TempStream object. To switch between insertion and extraction simply call seekg (for extraction) or seekp (for insertion).

## NAMESPACE

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

## INHERITS FROM

std::fstream

## CONSTRUCTORS

- TempStream(std::string const &base = "/tmp/FBB::TempStream"):
  The constructor initializes the object and creates a file with the given base-name to which six random characters are appended. If the TempStream could not be constructed an FBB::Exception is thrown.

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

## MEMBER FUNCTIONS

All std::fstream members are available, as FBB::TempStream inherits from this class. In addition, TempStream itself offers

- std::string const &fileName() const:
  The name of the created temporary file.

## EXAMPLE

        #include <iostream>
        #include <bobcat/tempstream>

        using namespace std;
        using namespace FBB;

        int main()
        {
            TempStream ts("/tmp/demo");

            ts << "Hello world\n";

            ts.seekg(0);
            string line;
            getline(ts, line);
            cout << line << ", removed: " << ts.fileName() << '\n';
        }

## FILES

bobcat/tempstream - defines the class interface

## SEE ALSO

bobcat(7), mkostemp(3)

## BUGS

None reported.

## BOBCAT PROJECT FILES

- https://fbb-git.gitlab.io/bobcat/: gitlab project page;
- bobcat_6.06.02-x.dsc: detached signature;
- bobcat_6.06.02-x.tar.gz: source archive;
- bobcat_6.06.02-x_i386.changes: change log;
- libbobcat1_6.06.02-x_*.deb: debian package containing the libraries;
- libbobcat1-dev_6.06.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).