_creat, _wcreat
Cria um arquivo novo. _creat e _wcreat foram preteridos; 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 tiver êxito, retornam um descritor de arquivo para o arquivo criado. Caso contrário, as funções retornam – 1 e errno definido como mostra a tabela a seguir.
defina deerrno |
Descrição |
---|---|
EACCES |
filename especifica um arquivo somente leitura existente ou especifica um diretório em vez de um arquivo. |
EMFILE |
Não mais descritor de arquivo está disponível. |
ENOENT |
O arquivo especificado não pôde ser localizado. |
Se filename for NULL, essas funções invoca o manipulador inválido do parâmetro, conforme descrito em Validação do parâmetro. Se a execução puder continuar, essas funções definirão errno para EINVAL e retornarão -1.
Para obter mais informações sobre esses e outros códigos de retorno, consulte _doserrno, errno, _sys_errlist, and _sys_nerr.
Comentários
A função de _creat cria um novo arquivo ou abre e trunca existente. _wcreat é uma versão de caractere longo de _creat; o argumento filename para _wcreat é uma cadeia de caractere longo. Caso contrário, _wcreat e _creat, ao contrário, se comportam de forma idêntica.
Mapeamentos da rotina de texto genérico
Rotina Tchar.h |
_UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcreat |
_creat |
_creat |
_wcreat |
Se o arquivo especificado por filename não existir, um novo arquivo será criado com a configuração de permissão especificada e aberto para gravação. Se o arquivo já existir e a configuração de permissão permite escrever, _creat trunca o arquivo ao comprimento 0, destruindo os conteúdos anteriores, e abri-lo para gravação. A configuração de permissão, pmode, se aplica aos recém-criados apenas arquivos. O novo arquivo recebe a configuração de permissão especificada depois que é fechado pela primeira vez. A expressão de inteiro pmode contém uma ou ambas as constantes manifestas _S_IWRITE e _S_IREAD, definido no sistema \ Stat.h. Quando ambas as constantes são fornecidas, são adicionadas com o operador bit a bit de OR ( |). O parâmetro de pmode é definido como um dos seguintes valores.
Valor |
Definição |
---|---|
_S_IWRITE |
Gravando permitida. |
_S_IREAD |
Leitura permitidas. |
_S_IREAD | _S_IWRITE |
Leitura e gravação permitidas. |
Se a permissão de gravação não for especificado, o arquivo é somente leitura. Todos os arquivos são sempre legíveis; é impossível atribuir a permissão somente gravação. Os modos _S_IWRITE e _S_IREAD| _S_IWRITE são equivalentes em. Os arquivos abertos usando _creat são sempre abertos no modo de compatibilidade (consulte _sopen) com _SH_DENYNO.
_creat aplica a máscara de arquivo atual permissão a pmode antes de definir as permissões _umask(consulte). _creat primeiro é fornecido para compatibilidade com as bibliotecas anteriores. Uma chamada para _open com _O_CREAT e a _O_TRUNC no parâmetro de oflag é equivalente a _creat e é preferível para o novo código.
Requisitos
Rotina |
Cabeçalho necessário |
Cabeçalho opcional |
---|---|---|
_creat |
<io.h> |
<o sistema/types.h, o sistema></stat.h, errno.h><> |
_wcreat |
<io.h ou> wchar.h <> |
<o sistema/types.h, o sistema></stat.h, errno.h><> |
Para obter mais informações sobre 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 );
}
}