# kdecore Library API Documentation

Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Source Files

# KTempFile Class Reference

The KTempFile class creates and opens a unique file for temporary use. More...

`#include <ktempfile.h>`

Collaboration diagram for KTempFile:

[legend]
List of all members.

## Public Member Functions

| KTempFile (QString filePrefix=QString::null, QString fileExtension=QString::null, int mode=0600)
| Creates a temporary file with the name: .
| ~KTempFile ()
| The destructor closes the file.
void | setAutoDelete (bool autoDelete)
| Turn automatic deletion on or off.
int | status () const
| Returns the status of the file based on errno.
QString | name () const
| Returns the full path and name of the file.
int | handle () const
| An integer file descriptor open for writing to the file.
FILE * | fstream ()
| Returns the FILE* of the temporary file.
QTextStream * | textStream ()
| Returns the QTextStream for writing.
QDataStream * | dataStream ()
| Returns a QDataStream for writing.
QFile * | file ()
| Returns a QFile.
void | unlink ()
| Unlinks the file from the directory.
bool | close ()
| Closes the file.

## Protected Member Functions

| KTempFile (bool)
| Constructor used by KSaveFile.
bool | create (const QString &filePrefix, const QString &fileExtension, int mode)
void | setError (int error)

## Friends

class | KSaveFile

## Detailed Description

The KTempFile class creates and opens a unique file for temporary use.

This is especially useful if you need to create a file in a world writable directory like /tmp without being vulnerable to so called symlink attacks.

KDE applications, however, shouldn't create files in /tmp in the first place but use the "tmp" resource instead. The standard KTempFile constructor will do that by default.

To create a temporary file that starts with a certain name in the "tmp" resource, one should use: KTempFile(locateLocal("tmp", prefix), extension);

KTempFile does not create any missing directories, but locateLocal() does.

See also KStandardDirs

Author:
  Waldo Bastian <bastian@kde.org>

Definition at line 54 of file ktempfile.h.

## Constructor & Destructor Documentation

KTempFile::KTempFile | ( | QString | filePrefix = QString::null,
|  | QString | fileExtension = QString::null,
|  | int | mode = 0600
| ) |

Creates a temporary file with the name: .

The default `filePrefix` is "$KDEHOME/tmp-$HOST/appname" The default `fileExtension` is ".tmp"

Parameters:

  filePrefix | the prefix of the file name, or QString::null for the default value
  the | extension of the prefix, or QString::null for the default value

Definition at line 58 of file ktempfile.cpp.

References KGlobal::instance(), and QString::isEmpty().

KTempFile::~KTempFile | ( |  | ) |

| The destructor closes the file. If autoDelete is enabled the file gets unlinked as well. Definition at line 123 of file ktempfile.cpp. References close(), and unlink().

KTempFile::KTempFile | ( | bool |  | ) | `[protected]`

| Constructor used by KSaveFile. Definition at line 77 of file ktempfile.cpp.

## Member Function Documentation

void KTempFile::setAutoDelete | ( | bool | autoDelete | ) | `[inline]`

Turn automatic deletion on or off.

Automatic deletion is off by default.

Parameters:

  autoDelete | true to turn automatic deletion on

Definition at line 85 of file ktempfile.h.

int KTempFile::status | ( |  | ) | const

Returns the status of the file based on errno.

(see errno.h) 0 means OK.

You should check the status after object creation to check whether a file could be created in the first place.

You may check the status after closing the file to verify that the file has indeed been written correctly.

Returns:
  the errno status, 0 means ok

Definition at line 131 of file ktempfile.cpp.

Referenced by KSaveFile::status().

QString KTempFile::name | ( |  | ) | const

Returns the full path and name of the file.

Returns:
  The name of the file, or QString::null if opening the file has failed or the file has been unlinked

Definition at line 137 of file ktempfile.cpp.

Referenced by KSaveFile::close(), and file().

int KTempFile::handle | ( |  | ) | const

An integer file descriptor open for writing to the file.

Returns:
  The file descriptor, or a negative number if opening the file failed

Definition at line 143 of file ktempfile.cpp.

Referenced by KSaveFile::handle().

FILE * KTempFile::fstream | ( |  | ) |

Returns the FILE* of the temporary file.

Returns:
  FILE* stream open for writing to the file, or 0 if opening the file failed

Definition at line 149 of file ktempfile.cpp.

References QString::latin1().

Referenced by file(), and KSaveFile::fstream().

QTextStream * KTempFile::textStream | ( |  | ) |

Returns the QTextStream for writing.

Returns:
  QTextStream open for writing to the file, or 0 if opening the file failed

Definition at line 176 of file ktempfile.cpp.

References file().

Referenced by KSaveFile::textStream().

QDataStream * KTempFile::dataStream | ( |  | ) |

Returns a QDataStream for writing.

Returns:
  QDataStream open for writing to the file, or 0 if opening the file failed

Definition at line 186 of file ktempfile.cpp.

References file().

Referenced by KSaveFile::dataStream().

QFile * KTempFile::file | ( |  | ) |

Returns a QFile.

Returns:
  A QFile open for writing to the file, or 0 if opening the file failed.

Definition at line 164 of file ktempfile.cpp.

References fstream(), name(), QFile::open(), and QFile::setName().

Referenced by dataStream(), KSaveFile::file(), and textStream().

void KTempFile::unlink | ( |  | ) |

| Unlinks the file from the directory. The file is deleted once the last reader/writer closes it. Definition at line 196 of file ktempfile.cpp. References QString::isEmpty(), and QFile::remove(). Referenced by KSaveFile::abort(), KSaveFile::close(), and ~KTempFile().

bool KTempFile::close | ( |  | ) |

Closes the file.

See status() for details about errors.

Returns:
  true if successful, or false if an error has occured.

Definition at line 204 of file ktempfile.cpp.

References QString::latin1().

Referenced by KSaveFile::abort(), KSaveFile::close(), and ~KTempFile().

The documentation for this class was generated from the following files:

- ktempfile.h
- ktempfile.cpp

This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 12:51:47 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001