_access_s
, _waccess_s
, _taccess_s
Determina le autorizzazioni di lettura/scrittura dei file. Queste funzioni sono versioni di , _waccess
con miglioramenti della_access
sicurezza, come descritto in Funzionalità di sicurezza in CRT.
Per _taccess_s
, vedere Mapping di funzioni di testo generico.
Sintassi
errno_t _access_s(
const char *path,
int mode
);
errno_t _waccess_s(
const wchar_t *path,
int mode
);
Parametri
path
Percorso di file o directory.
mode
Impostazione di autorizzazione.
Valore restituito
Ogni funzione restituisce 0 se il file ha la modalità specificata. La funzione restituisce un codice di errore se il file denominato non esiste o non è accessibile nella modalità specificata. In questo caso, la funzione restituisce un codice di errore dal set come indicato di seguito e inoltre imposta errno
sullo stesso valore.
Valore errno |
Condizione |
---|---|
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, vedereerrno
, _doserrno
, _sys_errlist
e _sys_nerr
.
Osservazioni:
Se usata con i file, la funzione _access_s
determina se il file specificato esiste ed è possibile accedervi come specificato dal valore di mode
. Se usata con le directory, _access_s
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 | Autorizzazione di scrittura. |
04 | Autorizzazione di lettura. |
06 | Autorizzazione di lettura e scrittura. |
L'autorizzazione per leggere o scrivere il file non è sufficiente per garantire la possibilità di aprire un file. Ad esempio, se un file è bloccato da un altro processo, potrebbe non essere accessibile anche se _access_s
restituisce 0.
_waccess_s
è una versione a caratteri wide di _access_s
, dove l'argomento path
per _waccess_s
è una stringa di caratteri wide. In caso contrario, _waccess_s
e _access_s
si comportano in modo identico.
Queste funzioni convalidano 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, queste funzioni impostano errno
su EINVAL
e restituiscono EINVAL
.
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
La funzione nella tchar.h
colonna esegue il mapping alla funzione nelle altre colonne a seconda del set di caratteri definito in fase di compilazione.
Funzione tchar.h |
_UNICODE e _MBCS non definito |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_taccess_s |
_access_s |
_access_s |
_waccess_s |
Requisiti
Ciclo | Intestazione obbligatoria | Intestazione facoltativa |
---|---|---|
_access_s |
<io.h> |
<errno.h> |
_waccess_s |
<wchar.h> oppure <io.h> |
<errno.h> |
Esempio
Questo esempio usa _access_s
per controllare il file denominato crt_access_s.c e verificare se esiste e se la scrittura è consentita.
// 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.
Vedi anche
Gestione dei file
_access
, _waccess
_chmod
, _wchmod
_fstat
, _fstat32
, _fstat64
, _fstati64
, _fstat32i64
_fstat64i32
_open
, _wopen
_stat
, _wstat
funzioni