_creat, _wcreat

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Io.h - Index


Header-Datei

io.h

Kategorie

Eingabe-/Ausgaberoutinen

Prototyp

int creat(const char *path, int amode);

int _wcreat(const wchar_t *path, int amode);

Beschreibung

Erstellt eine neue Datei oder überschreibt eine bestehende Datei.

Hinweis: Denken Sie daran, dass für den umgekehrten Schrägstrich in einer Pfadangabe '\\' angegeben werden muss.

Die Funktion creat erstellt eine neue Datei oder bereitet eine durch path angegebene vorhandene Datei zum Überschreiben vor.

Mit creat erstellte Dateien werden stets in dem durch die globale Variable _fmode angegebenen Übersetzungsmodus (O_TEXT oder O_BINARY) erstellt.

Wenn die Datei bereits vorhanden ist und über das Schreibattribut verfügt, verkürzt creat die Datei auf eine Länge von 0 Bytes, ohne die Dateiattribute zu ändern. Verfügt die vorhandene Datei über das Schreibschutzattribut, ruft creat die Funktion fails auf, und die Datei wird nicht verändert.

Mit einem Aufruf von creat wird nur das Bit S_IWRITE des Zugriffsmodusworts amode überprüft. Wenn dieses Bit den Wert 1 hat, kann in die Datei geschrieben werden. Hat das Bit den Wert 0, ist die Datei schreibgeschützt. Alle anderen Betriebssystemattribute werden auf 0 gesetzt.

amode kann einen der folgenden (in sys\stat.h definierten) Werte annehmen:

S_IWRITE

Berechtigung zum Schreiben

S_IREAD

Berechtigung zum Lesen

S_IREAD / S_IWRITE

Berechtigung zum Lesen und Schreiben (eine Leseberechtigung impliziert die Schreibberechtigung)


Rückgabewert

Bei erfolgreicher Ausführung gibt _creat das neue Datei-Handle (eine nicht negative Ganzzahl) zurück, andernfalls -1.

Bei einem Fehler wird die globale Variable errno auf einen der folgenden Werte gesetzt:

EACCES

Permission denied (Zugriff verweigert)

ENOENT

Path or file name not found (Pfad oder Dateiname nicht gefunden)

EMFILE

Too many open files (Zu viele Dateien geöffnet)


Beispiel

#include <sys\stat.h>
#include <string.h>
#include <fcntl.h>
#include <io.h>
int main(void)
{
   int handle;
   char buf[11] = "0123456789";
   /* change the default file mode from text to binary */
   _fmode = O_BINARY;
   /* create a binary file for reading and writing */
   handle = creat("DUMMY.FIL", S_IREAD |S_IWRITE);
   /* write 10 bytes to the file */
   write(handle, buf, strlen(buf));
   /* close the file */
   close(handle);
   return 0;
}

Portabilität

POSIX Win32 ANSI C ANSI C++

creat

+

+

_wcreat

Nur NT