Share via


_sopen, _wsopen

Abre um arquivo para o compartilhamento.Versões mais seguras dessas funções estão disponíveis; see _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 do 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 retorna um descritor de arquivo para o arquivo aberto.

Se 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, conforme descrito em Validação de parâmetro.Se a execução terá permissão para continuar, essas funções retornam -1 e defina errno a um dos seguintes valores.

  • EACCES
    Caminho especificado é um diretório, ou arquivo é somente leitura, mas foi tentada uma operação de abrir-para-gravação.

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

  • EINVAL
    Inválido oflag ou shflag argumento.

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

  • 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

O _sopen função abre o arquivo especificado por filename e prepara o arquivo compartilhado de leitura ou gravação, conforme definido pela oflag e shflag._wsopené uma versão de caractere largo de _sopen; o filename argumento para _wsopen é uma seqüência de caracteres largos._wsopene _sopen 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

_tsopen

_sopen

_sopen

_wsopen

A expressão de inteiro oflag é formado pela combinação de uma 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 bit a bit ou | ).

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

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

  • _O_CREAT
    Cria e abre um novo arquivo para gravação.Não terá efeito se o arquivo especificado pelo filename existe.O pmode argumento é necessário quando _O_CREAT é especificado.

  • _O_CREAT| _O_SHORT_LIVED
    Criar um arquivo como temporário e, se possível não liberou para o disco.O pmode argumento é necessário quando _O_CREAT é especificado.

  • _O_CREAT| _O_TEMPORARY
    Criar um arquivo como temporário. o arquivo é excluído quando o último descritor de arquivo é fechado.O pmode argumento é necessário quando _O_CREAT é especificado.

  • _O_CREAT| _O_EXCL
    Retorna um valor de erro, se um arquivo especificado por filename existe.Aplica-se somente quando usado 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. não pode ser especificado com _O_RDWR ou _O_WRONLY.

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

  • _O_SEQUENTIAL
    Especifica principalmente acesso seqüencial do disco.

  • _O_TEXT
    Abre um arquivo em modo de texto (traduzido).(Para obter mais informações, consulte texto e binário e/S de arquivos de modo e fopen.)

  • _O_TRUNC
    Abre um arquivo e trunca como zero comprimento; o arquivo deve ter permissão de gravação.Você não pode especificar esse sinalizador com _O_RDONLY._O_TRUNCusado com _O_CREAT abre um arquivo existente ou cria um novo arquivo.

    ObservaçãoObservação

    O _O_TRUNC sinalizador destrói o conteúdo do arquivo especificado.

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

  • _O_U16TEXT
    Abra o arquivo no modo Unicode UTF-16.

  • _O_U8TEXT
    Abra o arquivo no modo Unicode UTF-8.

  • _O_WTEXT
    Abra o arquivo no modo Unicode.

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

Se _sopen é chamado com _O_WRONLY|_O_APPEND (modo de acréscimo) e _O_WTEXT, _O_U16TEXT, ou _O_U8TEXT, ele irá tentar abrir o arquivo para leitura e gravação, primeiro leia a BOM e depois reabri-la somente para gravação.Se abrir o arquivo para leitura e gravação falhar, ele irá abri-lo somente para gravação e usar o valor padrão para a configuração do modo Unicode.

O argumento shflag é uma expressão de constante que consiste em uma das seguintes constantes manifesto, definidas em Share.h.

  • _SH_DENYRW
    Nega o acesso de leitura e gravação para um arquivo.

  • _SH_DENYWR
    Nega o acesso de gravação para um arquivo.

  • _SH_DENYRD
    Nega o acesso de leitura para um arquivo.

  • _SH_DENYNO
    Permissões de leitura e gravação acesso.

O pmode argumento é necessário apenas quando um especifica _O_CREAT.Se o arquivo não existir, pmode Especifica as configurações de permissão do arquivo, que são definidas quando o novo arquivo for fechado na primeira vez.Caso contrário, pmode será ignorado.pmodeé uma expressão de inteiros que 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, eles são combinados com o operador bit a bit ou.O significado de pmode é o seguinte.

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

_sopenaplica-se a máscara de permissão de arquivo atual 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.

Equivalência do .NET Framework

Não aplicável. Para chamar 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

Nível baixo e/S

Close

_creat, _wcreat

fopen, _wfopen

_fsopen, _wfsopen

Open, _wopen