_access_s, _waccess_s
Determina permissões de leitura/gravação de arquivo. Essa é uma versão de _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
Arquivo ou diretório.mode
Configuração de permissão.
Valor de retorno
Cada função retornará 0 se o arquivo tiver o modo determinado. A função retorna um código de erro se o arquivo nomeado não existe ou não está acessível no modo determinado. Nesse caso, a função retornará um código de erro do cluster como se segue e também define errno com o mesmo valor.
EACCES
Acesso negado. A configuração de permissão do arquivo não permite o acesso especificado.ENOENT
Nome de 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 usada com arquivos, a função de _access_s determina se o arquivo especificado existir e pode ser acessado como especificado pelo valor de mode. Quando usado com diretórios, _access_s determina se o diretório especificado existe. Em Windows 2000 e em sistemas operacionais mais tarde, todos os diretórios têm acesso de leitura e gravação.
valor do modo |
As verificações para arquivo |
---|---|
00 |
Somente existente. |
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 assegurar a capacidade de abrir um arquivo. Por exemplo, se um arquivo está bloqueado por outro processo, pode não estar acessível mesmo que retorna 0 de _access_s .
_waccess_s é uma versão de ampla caractere de _access_s, onde o argumento de path a _waccess_s é uma cadeia de caracteres de ampla caractere. 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 especificar um modo válido, o manipulador inválido do parâmetro será chamado, conforme descrito em Validação do parâmetro. Se a execução puder continuar, essas funções definirão errno como EINVAL e retornarão EINVAL.
Mapeamentos da rotina de texto genérico
Rotina Tchar.h |
_UNICODE e _MBCS não definidos |
_MBCS 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 saber se ele existe e se escrever é permitida.
// 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