_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.

Consulte também

Referência

E/S de nível baixo

_chmod, _wchmod

_chsize

_Close

_dup, _dup2

_Open, _wopen

_sopen, _wsopen

_umask