_access
, _waccess
, t_access
Determina se un file è di sola lettura o meno. Sono disponibili versioni più sicure; vedere _access_s
, _waccess_s
.
Per _taccess
, vedere Mapping di funzioni di testo generico.
Sintassi
int _access(
const char *path,
int mode
);
int _waccess(
const wchar_t *path,
int mode
);
Parametri
path
Percorso di file o directory.
mode
Attributo di lettura/scrittura.
Valore restituito
Ogni funzione restituisce 0 se il file ha la modalità specificata. La funzione restituisce -1 se il file denominato non esiste o non ha la modalità specificata; in questo caso, errno
viene impostato come illustrato nella tabella seguente.
valore | Descrizione |
---|---|
EACCES |
Accesso negato: l'impostazione di autorizzazione del file non consente l'accesso specificato. |
ENOENT |
Nome file o percorso non trovato. |
EINVAL |
Parametro non valido. |
Per altre informazioni su questi e altri codici restituiti, vedere errno
, _doserrno
, _sys_errlist
e _sys_nerr
.
Osservazioni:
Se usata con i file, la funzione _access
determina se il file o la directory specificata esiste e ha gli attributi specificati dal valore di mode
. Se utilizzata con le directory, _access
determina solo se la directory specificata esiste; nei sistemi operativi Windows 2000 e versioni successive, tutte le directory hanno accesso in lettura e scrittura.
Valore mode |
Controllo nel file |
---|---|
00 | Solo esistenza |
02 | Sola scrittura |
04 | Sola lettura |
06 | Lettura e scrittura |
Questa funzione controlla solo se il file e la directory sono di sola lettura o meno, non controlla le impostazioni di sicurezza del file system. A tale scopo è necessario un token di accesso. Per altre informazioni sulla sicurezza del file system, vedere Token di accesso. Esiste una classe ATL per fornire questa funzionalità; vedere CAccessToken
Classe.
_waccess
è una versione a caratteri wide di _access
; l'argomento path
in _waccess
è una stringa di caratteri wide. In caso contrario,_waccess
e _access
si comportano in modo identico.
Questa funzione convalida i relativi parametri. Se path
è NULL
o mode
non specifica una modalità valida, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, la funzione imposta errno
su EINVAL
e restituisce -1.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Mapping di funzioni di testo generico
Tchar.h routine |
_UNICODE e _MBCS non definito |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_taccess |
_access |
_access |
_waccess |
Requisiti
Ciclo | Intestazione obbligatoria | Intestazioni facoltative |
---|---|---|
_access |
<io.h> |
<errno.h> |
_waccess |
<wchar.h> oppure <io.h> |
<errno.h> |
Esempio
Nell'esempio seguente viene _access
usato per controllare il file denominato crt_ACCESS.C
per verificare se esiste e se la scrittura è consentita.
// 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.
Vedi anche
Gestione dei file
_chmod
, _wchmod
_fstat
, _fstat32
, _fstat64
, _fstati64
, _fstat32i64
_fstat64i32
_open
, _wopen
_stat
, _wstat
funzioni