Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   Related Pages  

KTempFile Class Reference

#include <ktempfile.h>

List of all members.

Public Methods

 KTempFile (QString filePrefix=QString::null, QString fileExtension=QString::null, int mode=0600)
 ~KTempFile ()
void setAutoDelete (bool autoDelete)
int status () const
QString name () const
int handle () const
FILE * fstream ()
QTextStream * textStream ()
QDataStream * dataStream ()
QFile * file ()
void unlink ()
bool close ()

Protected Methods

 KTempFile (bool)


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: <filePrefix><six letters><fileExtension>

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

KTempFile::~KTempFile  
 

The destructor closes the file. If autoDelete is enabled the file gets unlinked as well.

KTempFile::KTempFile bool    [protected]
 

Constructor used by KSaveFile


Member Function Documentation

bool KTempFile::close  
 

Closes the file.

See status() for details about errors.

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

QDataStream* KTempFile::dataStream  
 

Returns a QDataStream for writing.

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

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.

Referenced by KSaveFile::file().

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

Referenced by KSaveFile::fstream().

int KTempFile::handle  
 

An integer file descriptor open for writing to the file

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

Referenced by KSaveFile::handle().

QString KTempFile::name  
 

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

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  
 

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

Referenced by KSaveFile::status().

QTextStream* KTempFile::textStream  
 

Returns the QTextStream for writing.

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

Referenced by KSaveFile::textStream().

void KTempFile::unlink  
 

Unlinks the file from the directory. The file is deleted once the last reader/writer closes it.


The documentation for this class was generated from the following file:
Generated on Wed Aug 13 23:30:26 2003 for kdelibs by doxygen1.2.18