_rtl_creat, _wrtl_creat
Nach oben zu io.h - Index
Header-Datei
io.h
Kategorie
Eingabe-/Ausgaberoutinen
Prototyp
int _rtl_creat(const char *path, int attrib);
int _wrtl_creat(const wchar_t *path, int attrib);
Beschreibung
Erstellt eine neue Datei oder überschreibt eine bestehende Datei.
Anmerkung: Die Funktion _rtl_creat ersetzt die Funktion _creat, die veraltet ist.
_rtl_creat öffnet die durch den Parameter path angegebene Datei. Die Datei wird stets im Binärmodus geöffnet. Wenn die Datei erstellt werden konnte, wird der Dateizeiger auf den Anfang der Datei gesetzt. Die Datei wird zum Lesen und zum Schreiben geöffnet.
Ist die Datei bereits vorhanden, wird ihre Größe auf 0 zurückgesetzt. (Im Grunde entspricht dies dem Löschen der Datei und der Erstellung einer gleichnamigen, neuen Datei.)
Das Argument attrib ist eine Kombination einer oder mehrerer der folgenden (in dos.h definierten) Konstanten, der durch ein logisches ODER miteinander verknüpft werden:
FA_RDONLY |
Nur-Lesen-Attribut |
FA_HIDDEN |
Verborgene Datei |
FA_SYSTEM |
Systemdatei |
Rückgabewert
Bei erfolgreicher Ausführung gibt _rtl_creat das neue Datei-Handle zurück (ein nicht negativer Integerwert).
Andernfalls gibt die Funktion -1 zurück und weist der globalen Variablen errno einen der folgenden Werte zu:
EACCES Permission denied (Zugriff verweigert)
EMFILE Too many open files (Zu viele Dateien geöffnet)
ENOENT Path or file name not found (Pfad oder Dateiname nicht gefunden)
Beispiel
#include <string.h>
#include <stdio.h>
#include <io.h>
int main() {
unsigned count;
int handle;
char buf[11] = "0123456789";
/* Mit _rtl_creat eine 10 Byte große Datei erstellen. */
if ((handle = _rtl_creat("DUMMY2.FIL", 0)) < 0) {
perror("Unable to _rtl_create DUMMY2.FIL");
return 1;
}
if (_rtl_write(handle, buf, strlen(buf)) < 0) {
perror("Unable to _rtl_write to DUMMY2.FIL");
return 1;
}
_rtl_close(handle);
return 0;
}
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
_rtl_crea |
+ |
|||
_wrtl_creat |
Nur NT |