![]() | Patrick's Programming Library Version 6.4.21 - Dokumentation |
Dateizugriff. Mehr ...
Öffentliche Methoden | |
CFile () | |
Konstruktor der Klasse. Mehr ... | |
CFile (const CString &filename, const char *mode="rb") | |
Konstruktor der Klasse mit gleichzeitigem Öffnen einer Datei. Mehr ... | |
CFile (const char *filename, const char *mode="rb") | |
Konstruktor der Klasse mit gleichzeitigem Öffnen einer Datei. Mehr ... | |
CFile (FILE *handle) | |
Konstruktor der Klasse mit Übernahme eines C-Filehandles einer bereits geöffneten Datei. Mehr ... | |
virtual | ~CFile () |
Destruktor der Klasse. Mehr ... | |
virtual int | Close () |
Datei schließen. Mehr ... | |
ppluint64 | Copy (CFileObject &quellfile, ppluint64 quelloffset, ppluint64 bytes, ppluint64 zieloffset) |
Daten aus einer anderen Datei kopieren. Mehr ... | |
ppluint64 | Copy (CFileObject &quellfile, ppluint64 bytes) |
Daten aus einer anderen Datei kopieren. Mehr ... | |
int | Delete () |
Geöffnete Datei löschen. Mehr ... | |
virtual ppluint64 | DoCopy (CFileObject &quellfile, ppluint64 bytes) |
Daten aus einer anderen Datei kopieren. Mehr ... | |
virtual bool | Eof () const |
Prüfen, ob Dateiende erreicht ist. Mehr ... | |
virtual char * | Fgets (char *buffer, size_t num=1024) |
String lesen. Mehr ... | |
virtual wchar_t * | Fgetws (wchar_t *buffer, size_t num=1024) |
Wide-Character String lesen. Mehr ... | |
CString | Filename () const |
Dateiname auslesen. Mehr ... | |
virtual int | Flush () |
Gepufferte Daten schreiben. Mehr ... | |
virtual size_t | Fread (void *ptr, size_t size, size_t nmemb) |
Lesen eines Datenstroms. Mehr ... | |
virtual int | Fseek (ppluint64 offset, int origin) |
Dateizeiger auf gewünschte Stelle bringen. Mehr ... | |
virtual pplint64 | Ftell () |
Aktuelle Dateiposition ermitteln. Mehr ... | |
virtual size_t | Fwrite (const void *ptr, size_t size, size_t nmemb) |
Schreiben eines Datenstroms. Mehr ... | |
virtual int | Getc () |
Zeichen lesen. Mehr ... | |
const char * | GetFilename () const |
Dateiname auslesen. Mehr ... | |
virtual int | GetFileNo () const |
Filenummer der Datei. Mehr ... | |
int | Gets (CString &buffer, size_t num=1024) |
String lesen. Mehr ... | |
char * | Gets (char *buffer, size_t num=1024) |
CString | Gets (size_t num=1024) |
String lesen. Mehr ... | |
virtual int | Getwc () |
Wide-Character Zeichen lesen. Mehr ... | |
int | Getws (CWString &buffer, size_t num=1024) |
Wide-Character String lesen. Mehr ... | |
wchar_t * | Getws (wchar_t *buffer, size_t num=1024) |
CWString | Getws (size_t num=1024) |
Wide-Character String lesen. Mehr ... | |
virtual bool | IsOpen () const |
Prüfen, ob eine Datei geöffnet ist. Mehr ... | |
char * | Load () |
Den kompletten Inhalt der Datei laden. Mehr ... | |
int | Load (CVar &target) |
Den kompletten Inhalt der Datei in ein Objekt laden. Mehr ... | |
virtual int | LockExclusive (bool block=true) |
Datei exklusiv sperren. Mehr ... | |
virtual int | LockShared (bool block=true) |
Datei zum Lesen sperren. Mehr ... | |
pplint64 | Lof () const |
Größe der geöffneten Datei. Mehr ... | |
const char * | Map () |
Datei in den Speicher mappen. Mehr ... | |
virtual const char * | Map (ppluint64 position, size_t size) |
Datei in den Speicher mappen. Mehr ... | |
virtual char * | MapRW (ppluint64 position, size_t size) |
Datei Les- und Schreibbar in den Speicher mappen. Mehr ... | |
CString | MD5Sum () |
int | Open (const CString &filename, const char *mode="rb") |
Datei öffnen. Mehr ... | |
int | Open (FILE *handle) |
Bereits geöffnete Datei übernehmen. Mehr ... | |
int | Openf (const char *format, const char *mode,...) |
Datei zum Lesen oder Schreiben öffnen. Mehr ... | |
int | OpenTemp (const CString &filetemplate) |
Eine temporäre Datei zum Lesen und Schreiben öffnen. Mehr ... | |
int | OpenTempf (const char *filetemplate,...) |
Eine temporäre Datei zum Lesen und Schreiben öffnen. Mehr ... | |
int | Popen (const CString &command, const CString &mode) |
Prozess öffnen. Mehr ... | |
int | Popenf (const char *command, const char *mode,...) |
Prozess öffnen. Mehr ... | |
virtual int | Putc (int c) |
Zeichen schreiben. Mehr ... | |
int | Puts (const CString &str) |
String schreiben. Mehr ... | |
virtual int | Puts (const char *str) |
String schreiben. Mehr ... | |
int | Putsf (const char *fmt,...) |
Formatierten String schreiben. Mehr ... | |
virtual int | Putwc (wchar_t c) |
Wide-Character Zeichen schreiben. Mehr ... | |
int | Putws (const CWString &str) |
Wide-Character-String schreiben. Mehr ... | |
virtual int | Putws (const wchar_t *str) |
Wide-Character String schreiben. Mehr ... | |
size_t | Read (void *target, size_t bytes, ppluint64 fileposition) |
Daten lesen. Mehr ... | |
size_t | Read (void *target, size_t bytes) |
Daten lesen. Mehr ... | |
size_t | Read (CVar &target, size_t bytes) |
Daten in ein Objekt einlesen. Mehr ... | |
virtual int | Seek (ppluint64 position) |
Dateizeiger auf gewünschte Stelle bringen. Mehr ... | |
void | SetFilename (const CString &filename) |
Dateiname festlegen. Mehr ... | |
void | SetFilenamef (const char *filename,...) |
Dateiname festlegen. Mehr ... | |
virtual void | SetMapReadAhead (size_t bytes) |
Minimalgröße des Speicherblocks bei Zugriffen mit CFileObject::Map. Mehr ... | |
virtual pplint64 | Size () const |
Größe der geöffneten Datei. Mehr ... | |
virtual int | Sync () |
Dateiänderungen sofort auf die Platte schreiben. Mehr ... | |
virtual int | Truncate (ppluint64 length) |
Datei abschneiden. Mehr ... | |
virtual int | Unlock () |
Dateisperre aufheben. Mehr ... | |
virtual void | Unmap () |
size_t | Write (const void *source, size_t bytes, ppluint64 fileposition) |
Daten schreiben. Mehr ... | |
size_t | Write (const void *source, size_t bytes) |
Daten schreiben. Mehr ... | |
size_t | Write (const CVar &object, size_t bytes=0) |
Daten eines von CVar abgeleiteten Objekts schreiben. Mehr ... | |
Öffentliche, statische Methoden | |
static int | Chmod (const CString &filename, int attr) |
Setz die Attribute einer exisitierenden Datei. Mehr ... | |
static int | CopyFile (const CString &oldfile, const CString &newfile, size_t buffersize=0) |
Datei kopieren. Mehr ... | |
static int | DeleteFile (const CString &filename) |
Datei löschen. Mehr ... | |
static int | DeleteFilef (const char *filename,...) |
Datei löschen. Mehr ... | |
static int | Exists (const CString &filename) |
Prüfen, ob eine Datei existiert. Mehr ... | |
static int | Existsf (const char *fmt,...) |
Prüfen, ob eine Datei existiert. Mehr ... | |
static int | FileAttr (int attr, const CString &filename) |
Setz die Attribute einer exisitierenden Datei. Mehr ... | |
static int | FileAttrf (int attr, const char *filename,...) |
Setz die Attribute einer exisitierenden Datei. Mehr ... | |
static int | LoadFile (CVar &object, const CString &filename) |
Datei öffnen und den kompletten Inhalt in ein Objekt laden. Mehr ... | |
static void * | LoadFile (const CString &filename, size_t *size=NULL) |
Kompletten Inhalt einer Datei laden. Mehr ... | |
static CString | MD5 (const CString &filename) |
static int | MoveFile (const CString &oldfile, const CString &newfile) |
Datei verschieben oder umbenennen. Mehr ... | |
static int | RenameFile (const CString &oldfile, const CString &newfile) |
Datei verschieben oder umbenennen. Mehr ... | |
static int | Stat (const CString &filename, CDirEntry &result) |
static int | TouchFile (const CString &filename) |
Leere Datei anlegen oder die Zeitstempel des letzten Zugriffs aktualisieren. Mehr ... | |
static int | TouchFilef (const char *filename,...) |
Leere Datei anlegen oder die Zeitstempel des letzten Zugriffs aktualisieren. Mehr ... | |
static int | Truncate (const CString &filename, ppluint64 bytes) |
Datei abschneiden. Mehr ... | |
static int | WriteFile (const void *content, size_t size, const CString &filename) |
static int | WriteFile (const CVar &object, const CString &filename) |
static int | WriteFilef (const void *content, size_t size, const char *filename,...) |
Daten in Datei schreiben. Mehr ... | |
static int | WriteFilef (const CVar &object, const char *filename,...) |
Daten eines von CVar abgeleiteten Objekts in Datei schreiben. Mehr ... | |
Private Methoden | |
void * | mmap (ppluint64 position, size_t size, int prot, int flags) |
int | munmap (void *addr, size_t len) |
Private Attribute | |
char * | buffer |
void * | ff |
bool | isPopen |
int | LastMapProtection |
ppluint64 | LastMapSize |
ppluint64 | LastMapStart |
char * | MapBase |
ppluint64 | pos |
ppluint32 | ReadAhead |
ppluint64 | size |
Die CFile-Klasse unterstützt folgende Dateimodi:
ppl6::CFile::CFile | ( | ) |
ppl6::CFile::CFile | ( | const CString & | filename, |
const char * | mode = "rb" |
||
) |
Konstruktor der Klasse, mit dem gleichzeitig eine Datei geöffnet wird.
[in] | filename | Name der zu öffnenden Datei |
[in] | mode | Zugriffsmodus. Defaultmäßig wird die Datei zum binären Lesen geöffnet (siehe Dateimodi) |
ppl6::CFile::CFile | ( | const char * | filename, |
const char * | mode = "rb" |
||
) |
Konstruktor der Klasse, mit dem gleichzeitig eine Datei geöffnet wird.
[in] | filename | Name der zu öffnenden Datei |
[in] | mode | Zugriffsmodus. Defaultmäßig wird die Datei zum binären Lesen geöffnet (siehe Dateimodi) |
ppl6::CFile::CFile | ( | FILE * | handle | ) |
|
virtual |
|
virtual |
Diese Funktion schließt die aktuell geöffnete Datei. Sie wird automatisch vom Destruktor der Klasse aufgerufen, so dass ihr expliziter Aufruf nicht erforderlich ist.
Wenn der Stream zur Ausgabe eingerichtet war, werden gepufferte Daten zuerst durch CFileObject::Flush geschrieben. Der zugeordnete Datei-Deskriptor wird geschlossen.
Erneute Implementation von ppl6::CFileObject.
|
inherited |
Mit dieser Funktion kann ein Datenblock aus einer anderen Datei in diese hineinkopiert werden. Dabei werden bytes
Bytes ab der Position quelloffset
der Quelldatei quellfile
gelesen an die Position zieloffset
dieser Datei kopiert.
quellfile | Das Dateiobjekt, aus dem gelesen werden soll |
quelloffset | Position innerhalb der Quelldatei, ab der die Daten gelesen werden sollen |
bytes | Anzahl zu kopierender Bytes |
zieloffset | Position in dieser Datei, an die die Daten geschrieben werden sollen |
|
inherited |
Mit dieser Funktion kann ein Datenblock aus einer anderen Datei in diese hineinkopiert werden. Die Daten werden dabei ab dem aktuellen Dateipositionszeiger des quellfile
an den aktuellen Zeiger dieser Datei kopiert.
quellfile | Das Dateiobjekt, aus dem gelesen werden soll |
bytes | Anzahl zu kopierender Bytes |
int ppl6::CFile::Delete | ( | ) |
Mit dieser Funktion wird die aktuelle Datei zunächst geschlossen und dann gelöscht.
|
virtual |
Mit dieser Funktion kann ein Datenblock aus einer anderen Datei in diese hineinkopiert werden. Die Daten werden dabei ab dem aktuellen Dateipositionszeiger des quellfile
an den aktuellen Zeiger dieser Datei kopiert.
quellfile | Das Dateiobjekt, aus dem gelesen werden soll |
bytes | Anzahl zu kopierender Bytes |
Erneute Implementation von ppl6::CFileObject.
|
virtual |
Die Funktion prüft, ob das Dateiende erreicht wurde
true
zurück, wenn das Dateiende erreicht wurde, sonst false
. Falls die Datei nicht geöffnet war, wird ebenfalls false
zurückgegeben. Erneute Implementation von ppl6::CFileObject.
|
virtual |
Gets liest höchstens num
minus ein Zeichen aus der Datei und speichert sie in dem Puffer, auf den buffer
zeigt. Das Lesen stoppt nach einem EOF oder Zeilenvorschub. Wenn ein Zeilenvorschub gelesen wird, wird er in dem Puffer gespeichert. Am Ende der gelesenen Daten wird ein 0-Byte angehangen.
buffer | Pointer auf den Speicherbereich, in den die gelesenen Daten geschrieben werden sollen. Dieser muss vorher vom Aufrufer allokiert worden sein und mindestens num Bytes groß sein. |
num | Anzahl zu lesender Zeichen |
buffer
zurückgegeben, im Fehlerfall NULL. Erneute Implementation von ppl6::CFileObject.
|
virtual |
Gets liest höchstens num
minus ein Zeichen (nicht Bytes) aus der Datei und speichert sie in dem Puffer, auf den buffer
zeigt. Das Lesen stoppt nach einem EOF oder Zeilenvorschub. Wenn ein Zeilenvorschub gelesen wird, wird er in dem Puffer gespeichert. Am Ende der gelesenen Daten wird ein 0-Byte angehangen.
buffer | Pointer auf den Speicherbereich, in den die gelesenen Daten geschrieben werden sollen. Dieser muss vorher vom Aufrufer allokiert worden sein und mindestens num * sizeof(wchar_t) Bytes groß sein. |
num | Anzahl zu lesender Zeichen |
buffer
zurückgegeben, im Fehlerfall NULL.Erneute Implementation von ppl6::CFileObject.
|
inherited |
|
virtual |
Die Funktion Flush bewirkt, dass alle gepufferten Daten des aktuellen Streams mittels der zugrundeliegenden write-Funktion geschrieben werden. Der Status des Streams wird dabei nicht berührt. Die Daten werden nicht zwangsweise auch physikalisch auf die Platte geschrieben, sie können noch immer aus Performancegründen vom Kernel oder Treiber gecached werden. Um 100 Prozent sicher zu gehen, kann man die Funktion CFile::Sync verwenden.
Erneute Implementation von ppl6::CFileObject.
|
virtual |
Die Funktion Fread liest nmemb
Datenelemente vom Dateistrom und speichert es an der Speicherposition, die durch ptr
bestimmt ist. Jedes davon ist \ size Byte lang.
[out] | ptr | Pointer auf den Speicherbereich, in den die gelesenen Daten abgelegt werden sollen. Der Aufrufer muss vorher mindestens size * nmemb Bytes Speicher reserviert haben. |
[in] | size | Größe der zu lesenden Datenelemente |
[in] | nmemb | Anzahl zu lesender Datenelemente |
Erneute Implementation von ppl6::CFileObject.
|
virtual |
Die Funktion Fseek setzt den Dateipositionszeiger für den Stream. Die neue Position, gemessen in Byte, wird erreicht durch addieren von offset
zu der Position, die durch origin
angegeben ist. Wenn origin
auf SEEK_SET, SEEK_CUR, oder SEEK_END, gesetzt ist, ist der Offset relativ zum Dateianfang, der aktuellen Position, oder dem Dateiende.
Ein erfolgreicher Aufruf der Funktion fseek löscht den Dateiendezeiger für den Stream.
offset | Anzahl Bytes, die gesprungen werden soll. |
origin | Gibt die Richtung an, in die der Dateizeiger bewegt werden soll. Es kann einen der folgenden Werte annehmen:
|
Erneute Implementation von ppl6::CFileObject.
|
virtual |
Die Funktion Ftell liefert den aktuellen Wert des Dateipositionszeigers für den Stream zurück.
Erneute Implementation von ppl6::CFileObject.
|
virtual |
Die Funktion Fwrite schreibt nmemb
Datenelemente der Größe size
Bytes, in den Dateistrom. Sie werden von der Speicherstelle, die durch ptr
angegeben ist, gelesen.
ptr | Pointer auf den Beginn des zu schreibenden Speicherbereiches. |
size | Größe der zu schreibenden Datenelemente |
nmemb | Anzahl zu schreibender Datenelemente |
Erneute Implementation von ppl6::CFileObject.
|
virtual |
Getc liest das nächste Zeichen aus der Datei und gibt seinen unsigned char Wert gecastet in einem int zurück.
Erneute Implementation von ppl6::CFileObject.
|
inherited |
|
virtual |
Die Funktion liefert den Dateideskriptor als Integer zurück, wie er von den Systemfunktionen open , read , write und close genutzt wird.
Erneute Implementation von ppl6::CFileObject.
|
inherited |
Gets liest höchstens num
minus ein Zeichen aus der Datei und speichert sie im String-Objekt buffer
. Das Lesen stoppt nach einem EOF oder Zeilenvorschub. Wenn ein Zeilenvorschub gelesen wird, wird er in dem Puffer gespeichert. Am Ende der gelesenen Daten wird ein 0-Byte angehangen.
buffer | String-Objekt, in dem die gelesenen Daten gespeichert werden sollen. |
num | Anzahl zu lesender Zeichen |
buffer
ist im Fehlerfall undefiniert.
|
inherited |
|
inherited |
Gets liest höchstens num
minus ein Zeichen aus der Datei und liefert deren Inhalt als String-Objekt zurück. Das Lesen stoppt nach einem EOF oder Zeilenvorschub. Wenn ein Zeilenvorschub gelesen wird, wird er in dem Puffer gespeichert. Am Ende der gelesenen Daten wird ein 0-Byte angehangen.
num | Anzahl zu lesender Zeichen |
|
virtual |
Getwc liest das nächste Zeichen aus der Datei und gibt seinen Wert als Integer zurück.
Erneute Implementation von ppl6::CFileObject.
|
inherited |
Gets liest höchstens num
minus ein Zeichen aus der Datei und speichert sie im Wide-Character-String-Objekt buffer
. Das Lesen stoppt nach einem WEOF oder Zeilenvorschub. Wenn ein Zeilenvorschub gelesen wird, wird er in dem Puffer gespeichert. Am Ende der gelesenen Daten wird ein 0-Byte angehangen.
buffer | Wide-Character-String-Objekt, in dem die gelesenen Daten gespeichert werden sollen. |
num | Anzahl zu lesender Zeichen. Hierbei handelt es sich tatsächlich um Zeichen, nicht um Bytes. Die Anzahl zu lesender Bytes wird intern mit der Formel num * sizeof(wchar_t) errechnet. |
buffer
ist im Fehlerfall undefiniert.
|
inherited |
|
inherited |
Gets liest höchstens num
minus ein Zeichen aus der Datei liefert sie als Wide-Character-String-Objekt zurück. Das Lesen stoppt nach einem WEOF oder Zeilenvorschub. Wenn ein Zeilenvorschub gelesen wird, wird er in dem Puffer gespeichert. Am Ende der gelesenen Daten wird ein 0-Byte angehangen.
num | Anzahl zu lesender Zeichen. Hierbei handelt es sich tatsächlich um Zeichen, nicht um Bytes. Die Anzahl zu lesender Bytes wird intern mit der Formel num * sizeof(wchar_t) errechnet. |
|
virtual |
true
zurück, wenn die Datei offen ist, ansonsten false
. Erneute Implementation von ppl6::CFileObject.
|
inherited |
Mit dieser Funktion wird der komplette Inhalt der geöffneten Datei in den Hauptspeicher geladen. Der benötigte Speicher wird von der Funktion automatisch allokiert und muss vim Aufrufer nach Gebrauch mit free
wieder freigegeben werden.
free
selbst wieder freigegeben werden. Im Fehlerfall wird NULL.
|
inherited |
|
virtual |
Mit LockExclusive wird die Datei exklusiv zum Schreiben gesperrt. Andere Prozesse können nicht auf die Datei zugreifen, solange die Sperre besteht.
block | Gibt an, ob die Funktion warten soll (blocken), bis die Datei gesperrt werden kann (block=true) oder sofort mit einer Fehlermeldung zurückkehren soll (block=false). |
Erneute Implementation von ppl6::CFileObject.
|
virtual |
Mit LockShared wird die Datei zum Lesen gesperrt. Andere Prozesse können weiterhin auf die Datei zugreifen, allerdings ebenfalls nur lesend.
block | Gibt an, ob die Funktion warten soll (blocken), bis die Datei gesperrt werden kann (block=true) oder sofort mit einer Fehlermeldung zurückkehren soll (block=false). |
Erneute Implementation von ppl6::CFileObject.
|
inherited |
Diese Funktion liefert die Größe der geöffneten Datei in Bytes zurück.
|
inherited |
Mit dieser Funktion wird der komplette Inhalt der Datei in den Speicher gemapped. Falls das Betriebssystem mmap versteht, wird dieser verwendet. Dabei wird die Datei nicht sofort komplett in den Speicher geladen, sondern nur die Teile, die gerade benötigt werden. Steht mmap
nicht zur Verfügung, wird die Datei in den Hauptspeicher geladen. Die File-Klasse kümmert sich selbst daraum, dass der Speicher auch wieder freigegeben wird.
Ein mit Map gemappter Speicher darf nur gelesen, aber nicht beschrieben werden!
|
virtual |
mmap
nicht zur Verfügung, wird die Datei in den Hauptspeicher geladen. Die File-Klasse kümmert sich selbst daraum, dass der Speicher auch wieder freigegeben wird. [in] | position | Die gewünschte Startposition innerhalb der Datei |
[in] | bytes | Die Anzahl Bytes, die gemapped werden sollen. |
Erneute Implementation von ppl6::CFileObject.
|
virtual |
mmap
nicht zur Verfügung, wird die Datei in den Hauptspeicher geladen. Die File-Klasse kümmert sich selbst daraum, dass der Speicher nach Gebrauch wieder zurück in die Datei geschrieben und freigegeben wird. [in] | position | Die gewünschte Startposition innerhalb der Datei |
[in] | bytes | Die Anzahl Bytes, die gemapped werden sollen. |
Erneute Implementation von ppl6::CFileObject.
|
inherited |
|
private |
|
private |
int ppl6::CFile::Open | ( | const CString & | filename, |
const char * | mode = "rb" |
||
) |
Mit dieser Funktion wird eine Datei zum Lesen, Schreiben oder beides geöffnet.
[in] | filename | Dateiname |
mode | String, der angibt, wie die Datei geöffnet werden soll (siehe Dateimodi) |
int ppl6::CFile::Open | ( | FILE * | handle | ) |
Mit dieser Funktion kann eine mit der C-Funktion fopen
bereits geöffnete Datei übernommen werden.
[in] | handle | Das Filehandle |
int ppl6::CFile::Openf | ( | const char * | format, |
const char * | mode, | ||
... | |||
) |
Mit dieser Funktion wird eine Datei zum Lesen, Schreiben oder beides geöffnet.
format | Formatstring für den Dateinamen |
mode | String, der angibt, wie die Datei geöffnet werden soll (siehe Dateimodi) |
... | Optionale Parameter für den Formatstring |
int ppl6::CFile::OpenTemp | ( | const CString & | filetemplate | ) |
Diese Funktion erzeugt eine temporäre Datei mit einem eindeutigen Namen. Dieser Name wird aus filetemplate
erzeugt. Dazu müssen die letzten sechs Buchstaben des Parameters template XXXXXX sein, diese werden dann durch eine Zeichenkette ersetzt, die diesen Dateinamen eindeutig macht. Die Datei wird dann mit dem Modus read/write und den Rechten 0600 erzeugt.
[in] | filetemplate | Pfad und Vorlage für den zu erstellenden Dateinamen |
int ppl6::CFile::OpenTempf | ( | const char * | filetemplate, |
... | |||
) |
Diese Funktion erzeugt eine temporäre Datei mit einem eindeutigen Namen. Dieser Name wird aus filetemplate
erzeugt. Dazu müssen die letzten sechs Buchstaben des Parameters template XXXXXX sein, diese werden dann durch eine Zeichenkette ersetzt, die diesen Dateinamen eindeutig macht. Die Datei wird dann mit dem Modus read/write und den Rechten 0600 erzeugt.
[in] | filetemplate | Pfad und Vorlage für den zu erstellenden Dateinamen |
[in] | ... | Optionale Parameter |
Popen
öffnet einen Prozess dadurch, dass sie sich nach Erzeugen einer Pipe aufteilt und eine Shell öffnet. Da eine Pipe nach Definition unidirektional ist, darf das Argument mode
nur Lesen oder Schreiben angeben, nicht beides; der resultierende Datenkanal ist demzufolge nur-lesend oder nur-schreibend.[in] | command | Das Argument command enthält einen String, der ein Shell-Kommandozeile enthält. Dieses Kommando wird an /bin/sh unter Verwendung des Flags -c übergeben. Interpretation, falls nötig, wird von der Shell durchgeführt. |
[in] | mode | Das Argument mode ist ein Zeiger auf einen mit NULL beendeten String, der entweder ‘r’ für Lesen oder ‘w’ für Schreiben sein muss. |
int ppl6::CFile::Popenf | ( | const char * | command, |
const char * | mode, | ||
... | |||
) |
Popen
öffnet einen Prozess dadurch, dass sie sich nach Erzeugen einer Pipe aufteilt und eine Shell öffnet. Da eine Pipe nach Definition unidirektional ist, darf das Argument mode
nur Lesen oder Schreiben angeben, nicht beides; der resultierende Datenkanal ist demzufolge nur-lesend oder nur-schreibend.[in] | command | Das Argument command enthält einen String, der ein Shell-Kommandozeile enthält. Dieses Kommando wird an /bin/sh unter Verwendung des Flags -c übergeben. Interpretation, falls nötig, wird von der Shell durchgeführt. |
[in] | mode | Das Argument mode ist ein Zeiger auf einen mit NULL beendeten String, der entweder ‘r’ für Lesen oder ‘w’ für Schreiben sein muss. |
[in] | ... | Optionale Parameter |
|
virtual |
Putc schreibt das Zeichen c
, umgesetzt in ein unsigned char, in den Ausgabestrom.
c | Zu schreibendes Zeichen |
Erneute Implementation von ppl6::CFileObject.
|
inherited |
Diese Funktion schreibt den Inhalt des String-Objekts str
ohne sein nachfolgendes 0-Byte in den Ausgabestrom.
str | String-Objekt mit den zu schreibenden Daten |
|
virtual |
Puts schreibt die Zeichenkette str
ohne sein nachfolgendes 0-Byte in den Ausgabestrom.
str | Pointer auf den zu schreibenden String |
Erneute Implementation von ppl6::CFileObject.
|
inherited |
Putsf schreibt das Ergebnis nach Kontrolle des Formatierungsstrings fmt
und Einsetzen der optionalen Parameter ohne sein nachfolgendes 0-Byte in den Ausgabestrom.
fmt | Pointer auf den Formatierungsstring |
... | Optionale Parameter, die im Formatierungsstring verwendet werden. |
|
virtual |
Putwc schreibt das Wide-Character Zeichen c
in den Ausgabestrom.
c | Zu schreibendes Zeichen |
Erneute Implementation von ppl6::CFileObject.
|
inherited |
Diese Funktion schreibt den Inhalt des Wide-Character-String-Objekts str
ohne sein nachfolgendes 0-Byte in den Ausgabestrom.
str | String-Objekt mit den zu schreibenden Daten |
|
virtual |
Puts schreibt die Zeichenkette str
ohne sein nachfolgendes 0-Byte in den Ausgabestrom.
str | Pointer auf den zu schreibenden String |
Erneute Implementation von ppl6::CFileObject.
|
inherited |
Mit dieser Funktion wird beliebiger Bereich der geöffneten Datei in den Hauptspeicher geladen. Die Funktion ist nicht virtuell und existiert nur in der Basisklasse. Sie ruft die virtuellen Funktionen Seek und Fread auf, um den eigentlichen Lesevorgang durchzuführen.
target | Pointer auf den Speicherbereich, in den die gelesenen Daten geschrieben werden sollen. Dieser muss zuvor vom Aufrufer allokiert worden sein und mindestens bytes gross sein. |
bytes | Anzahl zu lesender Bytes |
fileposition | Position in der Datei, an der die Daten gelesen werden sollen |
|
inherited |
Diese Funktion liest bytes
Bytes ab der aktuellen Position des Dateistroms und speichert sie im Hauptspeicher an der duch target
bestimmten Position. Die Funktion ist nicht virtuell und existiert nur in der Basisklasse. Sie ruft die virtuellen Funktionen Seek und Fread auf, um den eigentlichen Lesevorgang durchzuführen.
target | Pointer auf den Speicherbereich, in den die gelesenen Daten geschrieben werden sollen. Dieser muss zuvor vom Aufrufer allokiert worden sein und mindestens bytes gross sein. |
bytes | Anzahl zu lesender Bytes |
|
inherited |
Diese Funktion liest bytes
Bytes ab der aktuellen Position des Dateistroms und speichert sie im Objekt target
.
Die Funktion ist nicht virtuell und existiert nur in der Basisklasse. Sie ruft die virtuellen Funktionen Seek und Fread auf, um den eigentlichen Lesevorgang durchzuführen.
target | Das Objekt, in dem die gelesenen Daten gespeichert werden sollen. |
bytes | Anzahl zu lesender Bytes |
|
virtual |
Diese Funktion bewegt den internen Dateizeiger auf die gewünschte Stelle
[in] | position | Gewünschte Position innerhalb der Datei |
Erneute Implementation von ppl6::CFileObject.
|
inherited |
[in] | filename | Ein CString, der den Dateinamen enthält. |
|
inherited |
[in] | filename | Ein Formatstring oder der Dateiname |
[in] | ... | beliebig viele Parameter, sofern filename ein Formatstring ist |
|
virtual |
Falls mit Map viele aufeinanderfolgende kleine Speicherblöcke gemapped werden, ist es sinnvoll größere Blöcke zu laden, die dann bereits im Cache bzw. Hauptspeicher liegen, wenn sie gebraucht werden. Mit dieser Funktion kann bestimmt werden, wie viele Daten im Voraus gemapped werden sollen.
bytes | Anzahl Bytes, die im Voraus gemapped werden sollen. |
Erneute Implementation von ppl6::CFileObject.
|
virtual |
Diese Funktion liefert die Größe der geöffneten Datei in Bytes zurück.
Erneute Implementation von ppl6::CFileObject.
|
virtual |
Ein Aufruf dieser Funktion bewirkt, dass alle Dateiänderungen sofort auf die Festplatte geschrieben werden. Sie sollte daher vor dem Schließen einer kritischen Datei mit CFile::Close aufgerufen werden, unter Umständen sogar nach jedem Schreibzugriff.
Erneute Implementation von ppl6::CFileObject.
|
virtual |
Die Funktionen Truncate bewirkt, dass die aktuell geöffnete Datei auf eine Größe von exakt length
Bytes abgeschnitten wird.
Wenn die Datei vorher größer war, gehen überschüssige Daten verloren. Wenn die Datei vorher kleiner war, wird sie vergrößert und die zusätzlichen Bytes werden als Nullen geschrieben.
Der Dateizeiger wird nicht verändert. Die Datei muss zum Schreiben geöffnet sein.
length | Position, an der die Datei abgeschnitten werden soll. |
Erneute Implementation von ppl6::CFileObject.
|
virtual |
Mit Unlock wird eine mit LockShared oder LockExclusive eingerichtete Sperre wieder aufgehoben, so dass auch andere Prozesse wieder uneingeschränkt auf die Datei zugreifen können.
Erneute Implementation von ppl6::CFileObject.
|
virtual |
Erneute Implementation von ppl6::CFileObject.
|
inherited |
Mit dieser Funktion wird ein beliebiger Speicherbereich auf den Datenträger geschrieben. Die Funktion ist nicht virtuell und existiert nur in der Basisklasse. Sie ruft die virtuellen Funktionen Seek und Fwrite auf, um den eigentlichen Schreibvorgang durchzuführen.
source | Pointer auf den Speicherbereich, der geschrieben werden soll |
bytes | Anzahl zu schreibender Bytes |
fileposition | Position in der Datei, an der die Daten gespeichert werden solle |
|
inherited |
Mit dieser Funktion wird ein beliebiger Speicherbereich auf den Datenträger geschrieben. Die Funktion ist nicht virtuell und existiert nur in der Basisklasse. Sie ruft die virtuellen Funktionen Seek und Fwrite auf, um den eigentlichen Schreibvorgang durchzuführen.
source | Pointer auf den Speicherbereich, der geschrieben werden soll |
bytes | Anzahl zu schreibender Bytes |
|
inherited |
Mit dieser Funktion wird der Speicherinhalt eines CVar-Objekts auf den Datenträger geschrieben. Die Funktion ist nicht virtuell und existiert nur in der Basisklasse. Sie ruft die virtuellen Funktionen Seek und Fwrite auf, um den eigentlichen Schreibvorgang durchzuführen.
object | Das zu speichernde CVar Objekt |
bytes | Anzahl zu schreibender Bytes |
|
static |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |