_creat, _wcreat

 

Publicado: julio de 2016

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Crear un archivo nuevo. _creaty _wcreat han quedado en desuso; utilice _sopen_s, _wsopen_s en su lugar.

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

Parámetros

filename
Nombre del nuevo archivo.

pmode
Configuración de permisos.

Estas funciones, si es correcto, devuelven un descriptor de archivo para el archivo creado. De lo contrario, las funciones devuelven -1 y establezca errno como se muestra en la tabla siguiente.

Valor de errnoDescripción
EACCESfilenameEspecifica un archivo de sólo lectura existente o un directorio en lugar de un archivo.
EMFILENo hay más descriptores de archivo disponibles.
ENOENTNo se encontró el archivo especificado.

Si filename es NULL, estas funciones invocan el controlador de parámetros no válidos, como se describe en validación del parámetro. Si la ejecución puede continuar, estas funciones establecen errno en EINVAL y devuelven -1.

Para obtener más información sobre estos y otros códigos de retorno, vea _doserrno, errno, _sys_errlist y _sys_nerr.

El _creat función crea un nuevo archivo o abre y trunca uno existente. _wcreat es una versión con caracteres anchos de _creat; el argumento filename para _wcreat es una cadena de caracteres anchos. Por lo demás, _wcreat y _creat se comportan de forma idéntica.

Asignaciones de rutina de texto genérico

Rutina Tchar.h_UNICODE y _MBCS no definidos_MBCS definido_UNICODE definido
_tcreat_creat_creat_wcreat

Si el archivo especificado por filename no existe, un nuevo archivo se crea con la configuración de permisos especificado y se abre para escritura. Si el archivo ya existe y su configuración de permisos permite escritura, _creat trunca el archivo de longitud 0, destruir el contenido anterior y lo abre para escritura. La configuración de permisos, pmode, se aplica a sólo los archivos recién creados. El nuevo archivo recibe la configuración de permisos especificado cuando se cierra por primera vez. La expresión de entero pmode contiene una o ambas constantes del manifiesto _S_IWRITE y _S_IREAD, definida en sys\stat. Cuando ambas constantes se proporcionan, se han unido con el bit a bit OR (operador) ( | ). El pmode parámetro se establece en uno de los siguientes valores.

ValorDefinición
_S_IWRITEEscritura permitida.
_S_IREADLectura permitida.
_S_IREAD | _S_IWRITELectura y escritura permitidas.

Si no se ha concedido el permiso de escritura, el archivo será de solo lectura. Todos los archivos son siempre legibles; es posible conceder permiso de solo escritura. Los modos de _S_IWRITE y _S_IREAD``| _S_IWRITE , a continuación, son equivalentes. Archivos abiertos con _creat siempre se abren en modo de compatibilidad (consulte _sopen) con _SH_DENYNO.

_creataplica la máscara de permisos de archivo actual a pmode antes de configurar los permisos (consulte _umask). _creatse proporciona principalmente por compatibilidad con las bibliotecas anteriores. Una llamada a _open con _O_CREAT y _O_TRUNC en el oflag es equivalente al parámetro _creat y es preferible para el nuevo código.

RutinaEncabezado necesarioEncabezado opcional
_creat<io.h>, , <errno.h></errno.h>
_wcreat<io.h> o <wchar.h>, , <errno.h></errno.h>

Para obtener más información sobre compatibilidad, vea Compatibility en la introducción.

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

Salidas de bajo nivel
_chmod, _wchmod
_chsize
_Close
_dup, _dup2
_open, _wopen
_sopen, _wsopen
_umask

Mostrar: