_access_s, _waccess_s
Determina as permissões de leitura/gravação do arquivo.Esta é uma versão do _access, _waccess com aprimoramentos de segurança, conforme descrito em Recursos de segurança no CRT.
errno_t _access_s(
const char *path,
int mode
);
errno_t _waccess_s(
const wchar_t *path,
int mode
);
Parâmetros
path
Caminho do arquivo ou diretório.mode
Configuração de permissão.
Valor de retorno
Cada função retorna 0 se o arquivo tiver determinado modo.A função retorna um código de erro se o arquivo nomeado não existe ou não está acessível no modo de determinado.Nesse caso, a função retorna um código de erro do conjunto da seguinte maneira e também define errno para o mesmo valor.
EACCES
Acesso negado.Configuração de permissão do arquivo não permite acesso especificado.ENOENT
Nome do arquivo ou caminho não encontrado.EINVAL
Parâmetro inválido.
Para obter mais informações, consulte errno, _doserrno, _sys_errlist e _sys_nerr.
Comentários
Quando usado com arquivos, o _access_s função determina se o arquivo especificado existe e pode ser acessado como especificado pelo valor do mode.Quando usado com diretórios, _access_s determina apenas se o diretório especificado existe.Na Windows 2000 e posterior operacionais sistemas, todos os diretórios têm leitura e gravação acesso.
valor de modo |
Verificações de arquivo para |
---|---|
00 |
Existência. |
02 |
Permissão de gravação. |
04 |
Permissão de leitura. |
06 |
Permissão de leitura e gravação. |
Permissão para ler ou gravar o arquivo não é suficiente para garantir a capacidade de abrir um arquivo.Por exemplo, se um arquivo estiver bloqueado por outro processo, ele pode não estar acessível mesmo que _access_s retorna 0.
_waccess_sé uma versão de caractere largo de _access_s, onde o path argumento para _waccess_s é uma seqüência de caracteres largos.Caso contrário, _waccess_s e _access_s se comportam de forma idêntica.
Essas funções validam seus parâmetros.Se path é NULL ou mode não especifica um modo válido, 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 definir errno para EINVAL e retornar EINVAL.
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 |
---|---|---|---|
_taccess_s |
_access_s |
_access_s |
_waccess_s |
Requisitos
Rotina |
Cabeçalho necessário |
Cabeçalho opcional |
---|---|---|
_access_s |
<io.h> |
<errno.h> |
_waccess_s |
<wchar.h> ou <io.h> |
<errno.h> |
Exemplo
Este exemplo usa _access_s para verificar o arquivo chamado crt_access_s.c para ver se ele existe e se será permitida ou escrita.
// crt_access_s.c
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
errno_t err = 0;
// Check for existence.
if ((err = _access_s( "crt_access_s.c", 0 )) == 0 )
{
printf_s( "File crt_access_s.c exists.\n" );
// Check for write permission.
if ((err = _access_s( "crt_access_s.c", 2 )) == 0 )
{
printf_s( "File crt_access_s.c does have "
"write permission.\n" );
}
else
{
printf_s( "File crt_access_s.c does not have "
"write permission.\n" );
}
}
else
{
printf_s( "File crt_access_s.c does not exist.\n" );
}
}
Equivalência do .NET Framework
Consulte também
Referência
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32