_creat, _wcreat
Crear un archivo nuevo. 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, las funciones devuelven – 1 y errno establecido 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, 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.
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 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 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 );
}
}