Freigeben über


_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 );
   }
}
  

Siehe auch

Referenz

E/A auf niedriger Ebene

_chmod, _wchmod

_chsize

_close

_dup, _dup2

_open, _wopen

_sopen, _wsopen

_umask