_creat
, _wcreat
Crea un nuovo file. _creat
e _wcreat
sono stati deprecati. Usare _sopen_s
invece . _wsopen_s
Sintassi
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 hanno esito positivo, restituiscono un descrittore di file al file creato. In caso contrario, le funzioni restituiscono -1 e impostate errno
come illustrato nella tabella seguente.
Valore errno |
Descrizione |
---|---|
EACCES |
filename specifica un file di sola lettura esistente oppure una directory anziché un file. |
EMFILE |
Non sono disponibili altri descrittori di file. |
ENOENT |
Impossibile trovare il file specificato. |
Se filename
è NULL
, queste funzioni richiamano il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, queste funzioni impostano errno
su EINVAL
e restituiscono -1.
Per altre informazioni su questi e altri codici restituiti, vedere errno
, _doserrno
, _sys_errlist
e _sys_nerr
.
Osservazioni:
La funzione _creat
crea un nuovo file oppure apre e tronca uno esistente. _wcreat
è una versione a caratteri wide di _creat
; l'argomento filename
in _wcreat
è una stringa di caratteri wide. In caso contrario,_wcreat
e _creat
si comportano in modo identico.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificarlo, vedere Stato globale in CRT.
Mapping di routine di testo generico
Routine Tchar.h | _UNICODE e _MBCS non definito |
_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 già esiste e l'impostazione di autorizzazione consente la scrittura, _creat
tronca il file di lunghezza 0, eliminando il contenuto precedente e lo apre per la scrittura. L'impostazione di autorizzazione, pmode
, si applica solo ai file appena creati. Il nuovo file riceve l'impostazione di autorizzazione specificata dopo la chiusura per la prima volta. L'espressione integer pmode
contiene una o entrambe le costanti manifesto _S_IWRITE
e _S_IREAD
, definite in SYS\Stat.h. Quando vengono date entrambe le costanti, vengono unite con l'operatore bit per bit o ( |
). Il parametro pmode
è impostato su uno dei valori seguenti.
Valore | Definizione |
---|---|
_S_IWRITE |
Scrittura consentita. |
_S_IREAD |
Lettura consentita. |
_S_IREAD | _S_IWRITE |
Lettura e scrittura consentite. |
Se non viene concessa l'autorizzazione di scrittura, il file è di sola lettura. Tutti i file sono sempre leggibili; non è possibile concedere autorizzazioni di sola scrittura. Le modalità _S_IWRITE
e _S_IREAD | _S_IWRITE
sono quindi equivalenti. I file aperti con _creat
vengono sempre aperti in modalità compatibilità (vedere _sopen
) con _SH_DENYNO
.
_creat
applica la maschera di autorizzazione file corrente a pmode
prima di impostare le autorizzazioni (vedere _umask
). _creat
viene specificato principalmente per la compatibilità con le librerie precedenti. Una chiamata a _open
con _O_CREAT
e _O_TRUNC
nel parametro oflag
equivale a _creat
ed è preferibile per nuovo codice.
Requisiti
Ciclo | Intestazione obbligatoria | Intestazione facoltativa |
---|---|---|
_creat |
<io.h> | <sys/types.h>, <sys/stat.h>, <errno.h> |
_wcreat |
<io.h> o <wchar.h> | <sys/types.h>, <sys/stat.h>, <errno.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
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 );
}
}
Created data file.
Vedi anche
I/O di basso livello
_chmod
, _wchmod
_chsize
_close
_dup
, _dup2
_open
, _wopen
_sopen
, _wsopen
_umask