Share via


_sopen, _wsopen

Abre um arquivo para compartilhamento.Versões mais seguras dessas funções estão disponível; consulte _sopen_s, _wsopen_s.

int _sopen(
   const char *filename,
      int oflag,
   int shflag [,
   int pmode ] 
);
int _wsopen(
   const wchar_t *filename,
      int oflag,
   int shflag [,
   int pmode ] 
);

Parâmetros

  • filename
    Nome de arquivo.

  • oflag
    Tipo de operações permitidas.

  • shflag
    Tipo de compartilhamento permitido.

  • pmode
    Configuração de permissão.

Valor de retorno

Cada uma dessas funções retornará um descritor de arquivo para o arquivo aberto.

If filename ou oflag é um NULL ponteiro, ou se oflag ou shflag é não dentro de um intervalo válido de valores, o manipulador de parâmetro inválido é invocado, sistema autônomo descrito em Validação de parâmetro. Se a execução for permitida para continuar, essas funções retornam -1 e conjunto errno um dos seguintes valores.

  • EACCES
    Fornecido o caminho é um diretório ou arquivo é somente leitura, mas foi tentada uma operação de em em aberto para gravação.

  • EEXIST
    _O_CREATe _O_EXCLsinalizadores forem especificados, mas filename já existe.

  • EINVAL
    De inválidooflag ou shflag argumento.

  • EMFILE
    Não há mais descritores de arquivo disponível.

  • ENOENT
    Arquivo ou caminho não encontrado.

Para obter mais informações sobre esses e outros códigos de retorno, consulte _doserrno, errno, _sys_errlist e _sys_nerr.

Comentários

The _sopen função abre o arquivo especificado por filename e prepara o arquivo para leitura compartilhada ou gravação, sistema autônomo definidos pela oflag e shflag. _wsopen é uma versão de caractere largo da _sopen; o filename argumento para _wsopen é uma seqüência de caracteres largos. _wsopen e _sopen 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

_tsopen

_sopen

_sopen

_wsopen

A expressão de inteiro oflag é formado pela combinação de um ou mais das seguintes constantes manifesto, definidas no arquivo fcntl.h. Quando dois ou mais constantes formam o argumento oflag, eles são combinados com o operador OR bit a bit ( | ).

  • _O_APPEND
    Reposiciona um ponteiro de arquivo para o participante do arquivo antes de cada operação de gravar.

  • _O_BINARY
    Abre um arquivo no modo binário (não traduzido).(See fopen para obter uma descrição do modo binário.)

  • _O_CREAT
    Cria e abre o novo arquivo para gravação.Não tem efeito se o arquivo especificado por filename existe. The pmode argumento é necessário quando _O_CREAT foi especificado.

  • _O_CREAT| _O_SHORT_LIVED
    Crie um arquivo temporário e se possível não liberar para disco.The pmode argumento é necessário quando _O_CREAT foi especificado.

  • _O_CREAT| _O_TEMPORARY
    Criar um arquivo sistema autônomo temporários; o arquivo é excluído quando o último descritor de arquivo é fechado.The pmode argumento é necessário quando _O_CREAT foi especificado.

  • _O_CREAT| _O_EXCL
    Retorna um valor de erro se um arquivo especificado por filename existe. Se aplica somente quando usada com _O_CREAT.

  • _O_NOINHERIT
    Impede a criação de um descritor de arquivo compartilhado.

  • _O_RANDOM
    Especifica principalmente acesso aleatório do disco.

  • _O_RDONLY
    Abre um arquivo para leitura apenas; não pode ser especificado com _O_RDWR ou _O_WRONLY.

  • _O_RDWR
    Aberturas de arquivo para leitura e gravação; não podem ser especificadas com _O_RDONLY ou _O_WRONLY.

  • _O_SEQUENTIAL
    Especifica principalmente acesso seqüencial do disco.

  • _O_TEXT
    Abre um arquivo no modo de texto (traduzido).(Para obter mais informações, consulte Texto e o modo binário E/s de arquivos and fopen.)

  • _O_TRUNC
    Abre um arquivo e trunca comprimento zero; o arquivo deve ter permissão de gravar.Não é possível especificar este sinalizar com _O_RDONLY. _O_TRUNCusado com _O_CREATAbre um arquivo existente ou cria um novo arquivo.

    Observação:

    O _O_TRUNC sinalizar destrói o Sumário do arquivo especificado.

  • _O_WRONLY
    Abre um arquivo para gravação apenas; não pode ser especificado com _O_RDONLY ou _O_RDWR.

  • _O_U16TEXT
    em aberto o arquivo no modo Unicode UTF-16.Essa opção está disponível em Visual C++ 2005.

  • _O_U8TEXT
    em aberto o arquivo no modo Unicode UTF-8.Essa opção está disponível em Visual C++ 2005.

  • _O_WTEXT
    Abra o arquivo no modo Unicode.Essa opção está disponível em Visual C++ 2005.

Para especificar o modo de acesso do arquivo, você deve especificar um dos _O_RDONLY, _O_RDWR, ou _O_WRONLY. Não há nenhum valor padrão para o modo de acesso.

If _sopen é chamado com _O_WRONLY|_O_APPEND (modo acrescentar) e _O_WTEXT, _O_U16TEXT, ou _O_U8TEXT, primeiro ele tentará em em aberto o arquivo para leitura e gravação, leia a BOM reabri-lo para gravar apenas. Se em em aberto o arquivo para leitura e gravação falhar, ele será em aberto o arquivo para gravação só e usar o valor padrão para a configuração do modo Unicode.

O argumento shflag é uma expressão constante que pode ser um das seguintes constantes manifesto, definidas no Share.h.

  • _SH_DENYRW
    Nega o acesso de leitura e gravar para um arquivo.

  • _SH_DENYWR
    Nega o acesso de gravar para um arquivo.

  • _SH_DENYRD
    Nega o acesso de leitura para um arquivo.

  • _SH_DENYNO
    Permissões de leitura e gravar acesso.

The pmode argumento é necessário somente quando um Especifica _O_CREAT. Se o arquivo não existir, pmode Especifica permissão conjunto tings o arquivo, que são conjunto quando o novo arquivo é fechado na primeira vez. Caso contrário, pmode é ignorado. pmode é uma expressão de inteiros que contém uma ou ambas as constantes do manifesto _S_IWRITE e _S_IREAD, definido no SYS\Stat.h. Quando as duas constantes forem fornecidos, eles são combinados com o operador OR bit a bit.O significado de pmode é sistema autônomo segue.

  • _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.Sob o sistema operacional Windows, todos os arquivos estão legíveis; não é possível conceder a permissão somente gravar.Assim, os modos de _S_IWRITE e _S_IREAD | _S_IWRITE são equivalentes.

_sopen aplica-se a máscara de permissão de arquivo corrente para pmode antes de definir as permissões (consulte _umask).

Requisitos

Rotina

Cabeçalho necessário

Cabeçalho opcional

_sopen

<io.h>

<fcntl.h>, <sys/types.h>, <sys/stat.h>, <share.h>

_wsopen

<io.h> ou <wchar.h>

<fcntl.h>, <sys/types.h>, <sys/stat.h>, <share.h>

Para obter mais informações de compatibilidade, consulte Compatibilidade na introdução.

Exemplo

Consulte o exemplo para _locking.

Equivalente do NET Framework

Não aplicável. Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

E/S de nível baixo

_Close

_creat, _wcreat

fopen, _wfopen

_fsopen, _wfsopen

_Open, _wopen