_rtl_creat, _wrtl_creat

Aus RAD Studio
Wechseln zu: Navigation, Suche

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