_creat, _wcreat
Cria um novo arquivo._create _wcreat foi preterido; Use _sopen_s, _wsopen_s em vez disso.
int _creat(
const char *filename,
int pmode
);
int _wcreat(
const wchar_t *filename,
int pmode
);
Parâmetros
filename
Nome do novo arquivo.pmode
Configuração de permissão.
Valor de retorno
Essas funções, se bem-sucedida, retornam um descritor de arquivo para o arquivo criado.Caso contrário, as funções retornam – 1 e defina errno conforme mostrado na tabela a seguir.
errnoconfiguração |
Descrição |
---|---|
EACCES |
filenameEspecifica um arquivo existente de somente leitura ou especifica um diretório em vez de um arquivo. |
EMFILE |
Não há mais descritores de arquivo estão disponíveis. |
ENOENT |
Arquivo especificado não pôde ser encontrado. |
Se filename for NULL, essas funções para chamar o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro.Se a execução terá permissão para continuar, essas funções definir errno para EINVAL e retornar -1.
Para obter mais informações sobre esses e outros códigos de retorno, consulte _doserrno, errno, _sys_errlist e _sys_nerr.
Comentários
O _creat função cria um novo arquivo ou abre e Trunca um já existente._wcreaté uma versão de caractere largo de _creat; o filename argumento para _wcreat é uma seqüência de caracteres largos._wcreate _creat tenham comportamento idêntico caso contrário.
Mapeamentos de rotina de texto genérico
Rotina de TCHAR.h |
_ Unicode e _ MBCS do arquivo não definido |
_ MBCS do arquivo definido |
_ Unicode definido |
---|---|---|---|
_tcreat |
_creat |
_creat |
_wcreat |
Se o arquivo especificado por filename não existir, um novo arquivo é criado com a configuração de permissão determinado e é aberto para gravação.Se o arquivo já existe e sua configuração de permissão de escrita, permite que _creat trunca o arquivo para o comprimento 0, destruindo o conteúdo anterior e o abre para gravação.A configuração de permissão, pmode, se aplica somente a arquivos recém-criados.O novo arquivo recebe a configuração de permissão especificada após ser fechado pela primeira vez.A expressão de inteiro pmode contém uma ou ambas as constantes de manifesto _S_IWRITE e _S_IREAD, definido em SYS\Stat.h.Quando as duas constantes forem fornecidas, elas se unem com o bit a bit OR (operador**|**).O pmode parâmetro estiver definido como um dos seguintes valores.
Valor |
Definição |
---|---|
_S_IWRITE |
Permissão de escrita. |
_S_IREAD |
Permissão de leitura. |
_S_IREAD | _S_IWRITE |
Permissão de leitura e gravação. |
Se a permissão de gravação não for fornecido, o arquivo é somente leitura.Todos os arquivos são sempre legíveis; é impossível dar permissão somente para gravação.Os modos de _S_IWRITE e _S_IREAD| _S_IWRITE , em seguida, são equivalentes.Arquivos abertos com _creat sejam sempre abertos no modo de compatibilidade (consulte _sopen) com _SH_DENYNO.
_creataplica-se a máscara de permissão de arquivo atual para pmode antes de definir as permissões (consulte _umask)._creaté fornecido principalmente para compatibilidade com bibliotecas anteriores.Uma chamada para _open com _O_CREAT e _O_TRUNC na oflag parâmetro é equivalente a _creat e é preferível para o novo código.
Requisitos
Rotina |
Cabeçalho necessário |
Cabeçalho opcional |
---|---|---|
_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> |
Para obter mais informações de compatibilidade, consulte compatibilidade na introdução.
Exemplo
// 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 );
}
}