Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Determina as permissões de leitura/gravação do arquivo. Estas funções são versões de _access, _waccess com aprimoramentos de segurança, conforme descrito em Recursos de segurança no CRT.
Para _taccess_s, consulte Mapeamentos de função de texto genérico.
Sintaxe
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 do diretório.
mode
Configuração de permissão.
Valor retornado
Cada função retorna 0 se o arquivo tem o modo determinado. A função retornará um código de erro se o arquivo nomeado não existir ou não estiver acessível no modo especificado. Nesse caso, a função retorna um código de erro do conjunto da seguinte maneira e também define errno com o mesmo valor.
errno valor |
Condição |
|---|---|
EACCES |
Acesso negado. A configuração de permissão do arquivo não permite o acesso especificado. |
ENOENT |
Nome ou caminho do arquivo 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 _access_s determina se o arquivo especificado existe e pode ser acessado conforme a especificação do valor de mode. Quando usada com diretórios, _access_s apenas determina se o diretório especificado existe. No Windows 2000 e nos sistemas operacionais mais recentes, todos os diretórios têm acesso de leitura e gravação.
mode valor |
Verifica o arquivo quanto a |
|---|---|
| 00 | Existência apenas. |
| 02 | Permissão de gravação. |
| 04 | Permissão de leitura. |
| 06 | Permissão de leitura e gravação. |
A 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 poderá não estar acessível mesmo que _access_s retorne 0.
_waccess_s é uma versão de caractere largo de _access_s, na qual o argumento path para _waccess_s é uma cadeia de caracteres largos. Caso contrário, _waccess_s e _access_s comportam-se de modo idêntico.
Essas funções validam seus parâmetros. Se path for NULL ou mode não especificar um modo válido, o manipulador de parâmetro inválido será invocado, conforme descrito em Validação de parâmetro. Se a execução tiver permissão para continuar, essas funções definirão errno como EINVAL e retornarão EINVAL.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Mapeamentos de funções de texto genérico
A função na coluna é mapeada tchar.h para a função nas outras colunas, dependendo do conjunto de caracteres definido em tempo de compilação.
Função 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 nomeado crt_access_s.c para saber se ele existe e se a gravação é 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" );
}
}
File crt_access_s.c exists.
File crt_access_s.c does not have write permission.
Confira também
Manipulação de arquivos
_access, _waccess
_chmod, _wchmod
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, , _fstat64i32
_open, _wopen
_stat, _wstat funções