_create, _wcreat
Erstellt eine neue Datei._creat und _wcreat sind veraltet. Verwenden Sie stattdessen _sopen_s, _wsopen_s .
int _creat(
const char *filename,
int pmode
);
int _wcreat(
const wchar_t *filename,
int pmode
);
Parameter
filename
Der Name der neuen Datei.pmode
Einstellung für Berechtigungen.
Rückgabewert
Diese Funktionen geben einen Dateideskriptor, wenn erfolgreich zur erstellten Datei zurück.Andernfalls geben die Funktionen und 1 festlegen errno wie in der folgenden Tabelle dargestellt zurück.
Einstellung für errno |
Beschreibung |
---|---|
EACCES |
filename gibt eine vorhandene schreibgeschützte Datei oder eines Verzeichnisses gibt anstelle einer Datei an. |
EMFILE |
Nicht mehr Dateideskriptoren sind verfügbar. |
ENOENT |
Die angegebene Datei konnte nicht gefunden werden. |
Wenn filename NULL ist, rufen diese Funktionen der ungültige Parameter für ein, wie in Parametervalidierungbeschrieben.Wenn die Ausführung fortgesetzt werden kann, darf dieses Features zu EINVAL und legen errno return -1.
Weitere Informationen über diese und andere Rückgabecodes finden Sie unter _doserrno, errno, _sys_errlist und _sys_nerr.
Hinweise
Die _creat-Funktion erstellt eine neue Datei und öffnet und beschneidet vorhandene ab._wcreat ist eine Breitzeichen-Version von _creat. filename das Argument zu _wcreat ist eine Zeichenfolge mit Breitzeichen._wcreat und _creat verhalten sich ansonsten unterscheiden.
Zuweisung generischer Textroutinen
Tchar.h-Routine |
_UNICODE als auch _MBCS nicht definiert |
_MBCS definieren |
_UNICODE definiert |
---|---|---|---|
_tcreat |
_creat |
_creat |
_wcreat |
Wenn die Datei, die von filename angegeben wird, nicht vorhanden ist, wird eine neue Datei mit der angegebenen Einstellung für Berechtigungen erstellt und ist zum Schreiben geöffnet.Wenn die Datei bereits vorhanden ist und ihre Berechtigungen _creat , wird die Einstellung Schreiben ermöglicht die Länge 0 (null) und zerstört die vorherigen Inhalte und öffnet sie zum Schreiben.Die Berechtigungen, pmode, gilt nur für neu erstellte Dateien.Die neue Datei empfängt die angegebene Berechtigung, nachdem sie zum ersten Mal geschlossen wird.Der ganzzahlige Ausdruck pmode enthält eine oder beide der _S_IWRITE Konstanten Manifesten und _S_IREAD, definiert in Stat.h \ SYS.Wenn beide Konstanten angegeben sind, werden sie mit dem bitweisen Operator verknüpft ( OR**|**).Der pmode-Parameter wird auf einen der folgenden Werte festgelegt.
Wert |
Definition |
---|---|
_S_IWRITE |
Schreiben zulässig. |
_S_IREAD |
Lesevorgänge zulässig. |
_S_IREAD | _S_IWRITE |
Lese- und Schreibvorgänge nicht zulässig. |
Wenn die Schreibberechtigung nicht angegeben ist, ist die Datei schreibgeschützt.Alle Dateien werden immer lesbar. Es ist nicht möglich, lesegeschützte Berechtigung zu gewähren.Die Modi _S_IWRITE und _S_IREAD| _S_IWRITE sind dann entsprechend.Die Dateien, die mit _creat geöffnet sind, sind immer im Kompatibilitätsmodus (siehe _sopen), mit _SH_DENYNOgeöffnet.
_creat wendet die aktuelle Dateiberechtigungsmaske zu pmode , bevor die Berechtigungen festgelegt werden sollen (siehe _umask)._creat wird hauptsächlich aus Gründen der Kompatibilität mit früheren Bibliotheken bereitgestellt.Ein Aufruf von _open mit _O_CREAT und _O_TRUNC im oflag-Parameter ist auf _creat entsprechend und zur neuen Code vorzuziehen.
Anforderungen
Routine |
Erforderlicher Header |
Optionaler Header |
---|---|---|
_creat |
<io.h> |
<sys/types.h> und <sys/stat.h> <errno.h> |
_wcreat |
<io.h> oder <wchar.h> |
<sys/types.h> und <sys/stat.h> <errno.h> |
Weitere Informationen finden Sie unter Kompatibilität Kompatibilität in der Einführung.
Beispiel
// crt_creat.c
// compile with: /W3
// This program uses _creat to create
// the file (or truncate the existing file)
// named data and open it for writing.
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int fh;
fh = _creat( "data", _S_IREAD | _S_IWRITE ); // C4996
// Note: _creat is deprecated; use _sopen_s instead
if( fh == -1 )
perror( "Couldn't create data file" );
else
{
printf( "Created data file.\n" );
_close( fh );
}
}