Compartilhar via


_access, _waccess

Determina se um arquivo for somente leitura ou não. Versões mais seguros estão disponíveis; consulte _access_s, _waccess_s.

int _access( 
   const char *path, 
   int mode 
);
int _waccess( 
   const wchar_t *path, 
   int mode 
);

Parâmetros

  • path
    Arquivo ou diretório.

  • mode
    Atributo de leitura/gravação.

Valor de retorno

Cada função retornará 0 se o arquivo tiver o modo determinado. A função retorna – 1 se o arquivo nomeado não existe ou não tiver o modo determinado; nesse caso, errno é definido como mostra a tabela a seguir.

  • 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 sobre esses e outros códigos de retorno, consulte _doserrno, errno, _sys_errlist, and _sys_nerr.

Comentários

Quando usada com arquivos, a função de _access determina se o arquivo ou diretório especificado existir e tem os atributos especificados pelo valor de mode. Quando usado com diretórios, _access determina se o diretório especificado existir; em Windows 2000 e em sistemas operacionais mais tarde, todos os diretórios têm acesso de leitura e gravação.

Valor mode

As verificações para arquivo

00

Somente existente

02

Somente gravação

04

Somente leitura

06

Leitura e gravação

Essa função só verifica se o arquivo e diretório é somente leitura ou não, ele não verifica as configurações de segurança do sistema de arquivos. Para que você precisa de um token de acesso. Para obter mais informações sobre a segurança do sistema de arquivos, consulte Tokens de acesso. Uma classe de ATL existir para fornecer essa funcionalidade; consulte Classe CAccessToken.

_waccess é uma versão de caractere longo de _access; o argumento path para _waccess é uma cadeia de caractere longo. Caso contrário, _waccess e _access, ao contrário, se comportam de forma idêntica.

Essa função valida 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 for permitida continuar, a função errno define a EINVAL e retorna -1.

Mapeamentos da rotina de texto genérico

Rotina Tchar.h

_UNICODE e _MBCS não definidos

_MBCS definido

_UNICODE definido

_taccess

_access

_access

_waccess

Requisitos

Rotina

Cabeçalho necessário

Cabeçalhos opcionais

_access

<io.h>

<errno.h>

_waccess

<wchar.h ou> io.h <>

<errno.h>

Exemplo

O exemplo a seguir usa _access para verificar o arquivo chamado crt_ACCESS.C para saber se ele existe e se escrever é permitida.

// crt_access.c
// compile with: /W1
// This example uses _access to check the file named
// crt_ACCESS.C to see if it exists and if writing is allowed.

#include  <io.h>
#include  <stdio.h>
#include  <stdlib.h>

int main( void )
{
    // Check for existence.
    if( (_access( "crt_ACCESS.C", 0 )) != -1 )
    {
        printf_s( "File crt_ACCESS.C exists.\n" );

        // Check for write permission.
        // Assume file is read-only.
        if( (_access( "crt_ACCESS.C", 2 )) == -1 )
            printf_s( "File crt_ACCESS.C does not have write permission.\n" );
    }
}
  

Equivalência do .NET Framework

FileAccess

Consulte também

Referência

Manipulação de arquivos

_chmod, _wchmod

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_open, _wopen

Funções _stat, _wstat