_creat, _wcreat
Cria um novo arquivo._creat e _wcreat uso em Visual C++ 2005; 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, sistema autônomo funções retornam – 1 e conjunto errno conforme a tabela a seguir.
errno configuração |
Descrição |
---|---|
EACCES |
filename Especifica 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ível. |
ENOENT |
Arquivo especificado não foi encontrado. |
If filename for nulo, essas funções chamar o manipulador de parâmetro inválido, conforme descrito em Validação de parâmetro. Se a execução for permitida para continuar, essas funções conjunto 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
The _creat função cria um novo arquivo ou abre e trunca uma existente. _wcreat é uma versão de caractere largo da _creat; o filename argumento para _wcreat é uma seqüência de caracteres largos. _wcreat e _creat tenham comportamento idêntico caso contrário.
Mapeamentos de rotina de texto genérica
Rotina tchar.h |
_UNICODE e _MBCS não definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcreat |
_creat |
_creat |
_wcreat |
Se o arquivo especificado por filename não existe um novo arquivo é criado com a configuração de permissão fornecido e aberto para gravação. Se o arquivo já existir e sua configuração de permissão permite escrever, _creat trunca o arquivo de tamanho 0, destruindo o Sumário anterior e o abre para gravação. A configuração de permissão, pmode, se aplica a apenas arquivos recém-criados. O novo arquivo recebe a definiçã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 do manifesto _S_IWRITE e _S_IREAD, definido no SYS\Stat.h. Quando ambas as constantes são determinados, eles fazem parte com o bit a bit OR () operador**|**).The 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 não receber permissão de gravar, o arquivo é somente leitura.Todos os arquivos são sempre legíveis; é impossível dar permissão somente gravar.The modes _S_IWRITE and _S_IREAD| _S_IWRITE are then equivalent.Arquivos abertos com _creat sempre são abertos no modo de compatibilidade (consulte _sopen) com _SH_DENYNO.
_creat aplica-se a máscara de permissão de arquivo corrente para pmode antes de definir as permissões (consulte _umask)._creat é fornecida primeiramente para compatibilidade com bibliotecas anteriores. Uma telefonar para _open com _O_CREAT e _O_TRUNC no 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 );
}
}
Created data file.