_creat, _wcreat
crea un nuevo archivo.están desusadas_creat y _wcreat ; uso _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.
Valor devuelto
Estas funciones, si son correctas, devuelven descriptor de archivo al archivo creado.Si no, el valor devuelto de las funciones – 1 y conjunto errno tal y como se muestra en la tabla siguiente.
Valor de errno |
Descripción |
---|---|
EACCES |
filename especifica un archivo de sólo lectura existente o especifica un directorio en lugar de un archivo. |
EMFILE |
No más de descriptores de archivo están disponibles. |
ENOENT |
El archivo especificado no se encontró. |
Si filename es NULL, estas funciones se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros.Si la ejecución puede continuar, este errno establecido funciones a EINVAL y retorno -1.
Para obtener más información sobre éstos y otros códigos de retorno, vea _doserrno, errno, _sys_errlist, y _sys_nerr.
Comentarios
La función de _creat crea un nuevo archivo o se abre y trunca existente._wcreat es una versión con caracteres anchos de _creat; el argumento de filename a _wcreat es una cadena de caracteres._wcreat y _creat se comportan exactamente igual de otra manera.
Asignaciones de la rutina de texto genérico
rutina de Tchar.h |
_UNICODE y _MBCS no definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcreat |
_creat |
_creat |
_wcreat |
Si no existe el archivo especificado por filename , un nuevo archivo se crea con la configuración de permisos especificada y se abrirá para escribir.Si el archivo ya existe y la configuración de permisos permite escribir, _creat trunca el archivo a la longitud 0, destruyendo el contenido anteriores, y lo abre para escribir.La configuración de permisos, pmode, se aplica a archivos creados recientemente únicamente.El nuevo archivo recibe la configuración de permisos especificada después de cerrar por primera vez.La expresión de entero pmode contiene una o ambas de las constantes del manifiesto _S_IWRITE y _S_IREAD, definido en SYS \Stat .h.Cuando se dan ambas constantes, se combinan con el operador bit a bit de OR (|).El parámetro de pmode se establece en uno de los valores siguientes.
Valor |
Definición |
---|---|
_S_IWRITE |
Escribir permitida. |
_S_IREAD |
lectura permitida. |
_S_IREAD | _S_IWRITE |
lectura y escritura permitidas. |
Si el permiso de escritura no se especifica, el archivo es de sólo lectura.Todos los archivos siempre son legibles; no se puede asignar el permiso de solo escritura.Los modos _S_IWRITE y _S_IREAD| _S_IWRITE constituyen equivalentes.Los archivos abiertos mediante _creat se abren siempre en modo de compatibilidad (vea _sopen) con _SH_DENYNO.
_creat aplica la máscara actual de los permisos de archivo a pmode antes de establecer los permisos (vea _umask)._creat se proporciona principalmente para la compatibilidad bibliotecas anteriores.una llamada a _open con _O_CREAT y a _O_TRUNC en el parámetro de oflag es equivalente a _creat y es preferible para el nuevo código.
Requisitos
rutina |
Encabezado necesario |
encabezado opcional |
---|---|---|
_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> |
Para obtener más información de compatibilidad, vea compatibilidad en la Introducción.
Ejemplo
// 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 );
}
}