_create, _wcreat
Crée un fichier._creat et _wcreat ont été déconseillées ; utilisation _sopen_s, _wsopen_s à la place.
int _creat(
const char *filename,
int pmode
);
int _wcreat(
const wchar_t *filename,
int pmode
);
Paramètres
filename
Nom de fichier.pmode
paramètre d'autorisation.
Valeur de retour
Ces fonctions, en cas de réussite, retournent un descripteur de fichier au fichier créé.Sinon, les fonctions retournent - 1 et errno défini comme indiqué dans le tableau suivant.
Paramètre errno |
Description |
---|---|
EACCES |
filename spécifie un fichier existant en lecture seule ou spécifie un répertoire à la place d'un fichier. |
EMFILE |
plus de descripteurs de fichier ne sont disponibles. |
ENOENT |
Le fichier spécifié est introuvable. |
si filename est NULL, ces fonctions appellent le gestionnaire de paramètre non valide, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution de se poursuivre, ces errno défini par fonctions à EINVAL et à retourner -1.
Pour plus d'informations sur ces éléments et d'autres codes de retour, consultez _doserrno, errno, _sys_errlist, et _sys_nerr.
Notes
La fonction d' _creat crée un nouveau fichier ou s'ouvre et tronque existant._wcreat est une version à caractère élargi d' _creat; l'argument d' filename à _wcreat est une chaîne à caractères larges._wcreat et _creat se comportent de sinon.
mappages de routines de texte générique
routine de Tchar.h |
_UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_tcreat |
_creat |
_creat |
_wcreat |
Si le fichier spécifié par filename n'existe pas, un nouveau fichier est créé avec le paramètre d'autorisation donné et est ouvert pour écriture.Si le fichier existe déjà et son paramètre d'autorisation permet l'écriture, _creat tronque le fichier à la longueur 0, détruisant le contenu précédent, et l'ouvre en écriture.Le paramètre d'autorisation, pmode, applique aux fichiers récemment créés uniquement.Le nouveau fichier accepte le paramètre d'autorisation spécifié après qu'il a été fermé pour la première fois.L'expression entière pmode contient une ou les deux constantes manifestes _S_IWRITE et _S_IREAD, défini dans le système \Stat .h.Lorsque les deux constantes sont données, elles sont attachées avec l'opérateur de bits d' OR (|).Le paramètre d' pmode a une des valeurs suivantes.
Valeur |
Définition |
---|---|
_S_IWRITE |
écriture autorisée. |
_S_IREAD |
lecture autorisée. |
_S_IREAD | _S_IWRITE |
lecture et écriture autorisées. |
Si l'autorisation d'écriture n'est pas accordée, le fichier est en lecture seule.tous les fichiers sont toujours lisibles ; il est impossible d'accorder l'autorisation en écriture seule.Les modes _S_IWRITE et _S_IREAD| _S_IWRITE sont ensuite équivalents.Ouvrir des fichiers à l'aide de _creat sont encore ouverts en mode de compatibilité (consultez _sopen) avec _SH_DENYNO.
_creat applique le masque d'autorisation de fichier en cours à pmode avant de définir les autorisations (consultez _umask)._creat est fourni essentiellement pour la compatibilité avec les bibliothèques précédentes.Un appel à _open avec _O_CREAT et à _O_TRUNC dans le paramètre d' oflag équivaut à _creat et est préférable pour le nouveau code.
Configuration requise
routine |
en-tête requis |
en-tête facultatif |
---|---|---|
_creat |
<io.h> |
<sys/types.h> <sys/stat.h> , <errno.h> |
_wcreat |
<io.h> ou <wchar.h> |
<sys/types.h> <sys/stat.h> , <errno.h> |
Pour plus d'informations de compatibilité, consultez compatibilité dans l'introduction.
Exemple
// 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 );
}
}