_create, _wcreat
Viene creato un nuovo file._creat e _wcreat è stato deprecato; utilizzo _sopen_s, _wsopen_s anziché.
int _creat(
const char *filename,
int pmode
);
int _wcreat(
const wchar_t *filename,
int pmode
);
Parametri
filename
Nome del nuovo file.pmode
Impostazione di autorizzazione.
Valore restituito
Queste funzioni, se si riesce, restituisce un descrittore del file creato.In caso contrario, il ripristino di funzioni a 1 e set errno come illustrato nella tabella seguente.
Impostazione di errno |
Descrizione |
---|---|
EACCES |
filename specifica un file di sola lettura esistente o specifica una directory anziché un file. |
EMFILE |
Non esistono descrittori di file disponibili. |
ENOENT |
Il file specificato non è stato trovato. |
se filename è NULL, queste funzioni viene richiamato il gestore non valido di parametro, come descritto in Convalida dei parametri.Se l'esecuzione è consentita per continuare, queste funzioni impostate errno in EINVAL e restituiscono -1.
Per ulteriori informazioni su questi e altri codici restituiti, vedere _doserrno, errno, _sys_errlist e _sys_nerr.
Note
_creat la funzione crea un nuovo file o aperto e conseguente esistente._wcreat è una versione a caratteri estesi di _creat; filename argomento a _wcreat è una stringa di caratteri estesi._wcreat e _creat comportano in modo identico in caso contrario.
Mapping di routine a testo generico
routine di Tchar.h |
_UNICODE e _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcreat |
_creat |
_creat |
_wcreat |
Se il file specificato da filename non esiste, viene creato un nuovo file con l'impostazione di autorizzazione specificata e aperto per la scrittura.Se il file esiste già e l'impostazione autorizzazione consente la scrittura, _creat tronca il file alla lunghezza 0, eliminazione dei contenuti precedenti e aperto per la scrittura.L'impostazione di autorizzazione, pmode, si applica ai file appena creato solo.Il nuovo file riceve l'impostazione di autorizzazione specificata dopo aver chiuso per la prima volta.l'espressione Integer pmode contiene una o entrambe le costanti manifesto _S_IWRITE e _S_IREAD, definito nel sistema \Stat h.Quando entrambe le costanti vengono fornite, vengono unite dal bit per bit OR operatore (|).pmode il parametro è impostato su uno dei seguenti valori.
Valore |
Definizione |
---|---|
_S_IWRITE |
Scrittura valida. |
_S_IREAD |
Lettura valida. |
_S_IREAD | _S_IWRITE |
lettura e scrittura consentite. |
Se l'autorizzazione di scrittura non viene concessa, il file è di sola lettura.tutti i file sono sempre leggibili; è impossibile da fornire l'autorizzazione di sola scrittura.le modalità _S_IWRITE e _S_IREAD| _S_IWRITE essere quindi equivalente.Aprire file tramite _creat verranno visualizzate sempre in modalità di compatibilità (vedere _sopen) con _SH_DENYNO.
_creat applica la maschera corrente di autorizzazione file a pmode prima di impostare le autorizzazioni (vedere _umask)._creat viene fornito principalmente per la compatibilità delle librerie precedenti.una chiamata a _open con _O_CREAT e _O_TRUNC in oflag il parametro equivale a _creat ed è preferibile per il nuovo codice.
Requisiti
routine |
Intestazione di associazione |
intestazione facoltativa |
---|---|---|
_creat |
<io.h> |
<sistema/types.h> , <sistema/stat.h> , <errno.h> |
_wcreat |
<io.h> o <wchar.h> |
<sistema/types.h> , <sistema/stat.h> , <errno.h> |
Per ulteriori informazioni sulla compatibilità, vedere compatibilità nell'introduzione.
Esempio
// 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 );
}
}