_creat, _wcreat_creat, _wcreat

Crée un nouveau fichier.Creates a new file. _creat et _wcreat ont été dépréciés ; Utilisez _sopen_s, _wsopen_s à la place._creat and _wcreat have been deprecated; use _sopen_s, _wsopen_s instead.

SyntaxeSyntax

int _creat(
   const char *filename,
   int pmode
);
int _wcreat(
   const wchar_t *filename,
   int pmode
);

ParamètresParameters

extensionfilename
Nom du nouveau fichier.Name of new file.

pmodepmode
Paramètre d'autorisation.Permission setting.

Valeur de retourReturn Value

Ces fonctions, en cas de réussite, retournent un descripteur de fichier pour le fichier créé.These functions, if successful, return a file descriptor to the created file. Sinon, les fonctions retournent-1 et définissent errno comme indiqué dans le tableau suivant.Otherwise, the functions return -1 and set errno as shown in the following table.

paramètre errnoerrno setting DescriptionDescription
EACCESEACCES filename spécifie un fichier en lecture seule existant ou spécifie un répertoire au lieu d’un fichier.filename specifies an existing read-only file or specifies a directory instead of a file.
EMFILEEMFILE Aucun autre descripteur de fichier n'est disponible.No more file descriptors are available.
ENOENTENOENT Le fichier spécifié est introuvable.Specified file could not be found.

Si filename a la valeur null, ces fonctions appellent le gestionnaire de paramètres non valides, comme décrit dans validation de paramètre.If filename is NULL, these functions invoke the invalid parameter handler, as described in Parameter Validation. Si l’exécution est autorisée à se poursuivre, ces fonctions définissent errno sur EINVAL et retournent-1.If execution is allowed to continue, these functions set errno to EINVAL and return -1.

Pour plus d’informations sur ces codes de retour et les autres, consultez _doserrno, errno, _sys_errlist et _sys_nerr.For more information about these and other return codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.

Notes Remarks

La fonction _creat crée un nouveau fichier ou ouvre et tronque un fichier existant.The _creat function creates a new file or opens and truncates an existing one. _wcreat est une version à caractères larges de _creat; l’argument de nom de fichier pour _wcreat est une chaîne de caractères larges._wcreat is a wide-character version of _creat; the filename argument to _wcreat is a wide-character string. dans le cas contraire, _wcreat et _creat se comportent de la même façon._wcreat and _creat behave identically otherwise.

Par défaut, l’état global de cette fonction est limité à l’application.By default, this function's global state is scoped to the application. Pour modifier cette valeur, consultez état global dans le CRT.To change this, see Global state in the CRT.

Mappages de routines de texte génériqueGeneric-Text Routine Mappings

Routine Tchar.hTchar.h routine _UNICODE et _MBCS non définis_UNICODE and _MBCS not defined _MBCS défini_MBCS defined _UNICODE défini_UNICODE defined
_tcreat_tcreat _creat_creat _creat_creat _wcreat_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 en écriture.If the file specified by filename does not exist, a new file is created with the given permission setting and is opened for writing. Si le fichier existe déjà et que son paramètre d’autorisation autorise l’écriture, _creat tronque le fichier à la longueur 0, en détruisant le contenu précédent et en l’ouvrant pour écriture.If the file already exists and its permission setting allows writing, _creat truncates the file to length 0, destroying the previous contents, and opens it for writing. Le paramètre d’autorisation, PMODE, s’applique uniquement aux fichiers nouvellement créés.The permission setting, pmode, applies to newly created files only. Le nouveau fichier reçoit le paramètre d’autorisation spécifié après sa première fermeture.The new file receives the specified permission setting after it is closed for the first time. L’expression entière PMODE contient l’une des constantes manifestes, ou les deux, _S_IWRITE et les _S_IREAD, définis dans SYS\Stat.h.The integer expression pmode contains one or both of the manifest constants _S_IWRITE and _S_IREAD, defined in SYS\Stat.h. Quand les deux constantes sont données, elles sont jointes avec l’opérateur or au niveau du bit ( | ).When both constants are given, they are joined with the bitwise or operator ( | ). Le paramètre PMODE est défini sur l’une des valeurs suivantes.The pmode parameter is set to one of the following values.

ValueValue DéfinitionDefinition
_S_IWRITE_S_IWRITE Écriture autorisée.Writing permitted.
_S_IREAD_S_IREAD Lecture autorisée.Reading permitted.
_S_IREAD | _S_IWRITE_S_IREAD | _S_IWRITE Lecture et écriture autorisées.Reading and writing permitted.

Si l'autorisation d'écriture n'est pas accordée, le fichier est en lecture seule.If write permission is not given, the file is read-only. Tous les fichiers sont toujours accessibles en lecture ; il est impossible d’accorder l’autorisation en écriture seule.All files are always readable; it is impossible to give write-only permission. Les modes _S_IWRITE et _S_IREAD | _S_IWRITE sont alors équivalents.The modes _S_IWRITE and _S_IREAD | _S_IWRITE are then equivalent. Les fichiers ouverts à l’aide de _creat sont toujours ouverts en mode de compatibilité (consultez _sopen) avec _SH_DENYNO.Files opened using _creat are always opened in compatibility mode (see _sopen) with _SH_DENYNO.

_creat applique le masque d’autorisation de fichier actuel à PMODE avant de définir les autorisations (consultez _umask)._creat applies the current file-permission mask to pmode before setting the permissions (see _umask). _creat est fourni principalement pour la compatibilité avec les bibliothèques précédentes._creat is provided primarily for compatibility with previous libraries. Un appel à _open avec _O_CREAT et _O_TRUNC dans le paramètre Oflag est équivalent à _creat et est préférable pour le nouveau code.A call to _open with _O_CREAT and _O_TRUNC in the oflag parameter is equivalent to _creat and is preferable for new code.

SpécificationsRequirements

RoutineRoutine En-tête requisRequired header En-tête facultatifOptional header
_creat_creat <io.h><io.h> <sys/types.h>, <sys/stat.h>, <errno.h><sys/types.h>, <sys/stat.h>, <errno.h>
_wcreat_wcreat <io.h> ou <wchar.h><io.h> or <wchar.h> <sys/types.h>, <sys/stat.h>, <errno.h><sys/types.h>, <sys/stat.h>, <errno.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.For more compatibility information, see Compatibility.

ExempleExample

// 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.

Voir aussiSee also

E/S niveau basLow-Level I/O
_chmod, _wchmod_chmod, _wchmod
_chsize_chsize
_close_close
_dup, _dup2_dup, _dup2
_open, _wopen_open, _wopen
_sopen, _wsopen_sopen, _wsopen
_umask_umask