KTempFile class Reference (kdecore Library)

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