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