---
name: "tempstream"
section: "3bobcat"
platform: "linux"
package: "libbobcat-dev"
version: "6.07.01-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/tempstream"
---

# tempstream(3bobcat)

Temporary fstream

## 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

- o

  **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

- o

  **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)](/bobcat/7.md), [**mkostemp**(3)](/mkostemp/3.md)

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