_creat, _wcreat
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 |