Compartilhar via


_access_s, _waccess_s, _taccess_s

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