_access
, _waccess
Determina se um arquivo é somente leitura ou não. Há versões mais seguras disponíveis, confira _access_s
, _waccess_s
.
Sintaxe
int _access(
const char *path,
int mode
);
int _waccess(
const wchar_t *path,
int mode
);
Parâmetros
path
Caminho do arquivo ou do diretório.
mode
Atributo de leitura/gravação.
Retornar valor
Cada função retorna 0 se o arquivo tem o modo determinado. A função retorna -1 se o arquivo nomeado não existir ou não tiver o modo fornecido; nesse caso, errno
é definido conforme mostrado na tabela a seguir.
Valor | Descriçã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 sobre esses e outros códigos de retorno, confira errno
, _doserrno
, _sys_errlist
e _sys_nerr
.
Comentários
Quando usado com arquivos, a função _access
determina se o arquivo ou o diretório especificado existe e tem os atributos especificados pelo valor de mode
. Quando usado com diretórios, _access
determina apenas 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 | Somente gravação |
04 | Somente leitura |
06 | Leitura e gravação |
Essa função verifica apenas se o arquivo e o diretório são somente leitura ou não, ela não verifica as configurações de segurança do sistema de arquivos. Para isso você precisa de um token de acesso. Para obter mais informações sobre segurança do sistema de arquivos, consulte Tokens de acesso. Existe uma classe da ATL para fornecer essa funcionalidade, confira Classe CAccessToken
.
A função _waccess
é uma versão de caractere largo da função _access
; o argumento path
para _waccess
é uma cadeia de caracteres larga. Caso contrário, _waccess
e _access
se comportam de forma idêntica.
Essa função valida seus parâmetros. Se path
for NULL
ou mode
não especificar um modo válido, o manipulador de parâmetros inválido será chamado, conforme descrito em Validação de parâmetro. Se a execução puder continuar, a função definirá errno
como EINVAL
e retornará –1.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.
Mapeamentos de 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 nomeado crt_ACCESS.C
a fim de saber se ele existe e se a gravação é 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" );
}
}
File crt_ACCESS.C exists.
File crt_ACCESS.C does not have write permission.
Confira também
Manipulação de arquivos
_chmod
, _wchmod
_fstat
, _fstat32
, _fstat64
, _fstati64
, _fstat32i64
, _fstat64i32
_open
, _wopen
_stat
, _wstat
funções
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de