_access_s, _waccess_s
Determina le autorizzazioni di lettura/scrittura del file. Si tratta di una versione di _access, _waccess con miglioramenti della sicurezza come descritto in Funzionalità di sicurezza in CRT.
errno_t _access_s(
const char *path,
int mode
);
errno_t _waccess_s(
const wchar_t *path,
int mode
);
Parametri
path
Un file o un percorso di directory.mode
Impostazione di autorizzazione.
Valore restituito
Ogni funzione restituisce 0 se il file presenta la modalità specificata. La funzione restituisce un codice di errore se il file denominato non esiste o non è accessibile in modalità specificata. In questo caso, la funzione restituisce un codice di errore dal set di seguito e imposta inoltre errno allo stesso valore.
EACCES
Accesso negato. L'impostazione dell'autorizzazione del file non consente l'accesso specificato.ENOENT
File o percorso non trovato.EINVAL
Parametro non valido.
Per ulteriori informazioni, vedere errno, _doserrno, _sys_errlist, and _sys_nerr.
Note
Quando viene utilizzata con i file, la funzione _access_s determina se il file specificato esiste ed è possibile accedervi come specificato dal valore di mode. Una volta utilizzato con le directory, _access_s determina solo se la directory specificata esiste. In Windows 2000 e sistemi operativi successivi, tutte le directory hanno accesso in lettura e scrittura.
valore della modalità |
Verifica il file per |
---|---|
00 |
Solo l'esistenza. |
02 |
Autorizzazioni di scrittura. |
04 |
Autorizzazioni di lettura. |
06 |
Autorizzazioni di lettura e scrittura. |
L'autorizzazione di lettura o di scrittura del file non è sufficiente per garantire la possibilità di aprire un file. Ad esempio, se un file è bloccato da un altro processo, potrebbe non essere disponibile anche se _access_s restituisce 0.
_waccess_s è una versione a caratteri estesi di _access_s, dove l'argomento path in _waccess_s è una stringa di caratteri estesi. In caso contrario, _waccess_s e _access_s si comportano in modo identico.
Queste funzioni convalidano i parametri. Se path è NULL o mode non specifica la modalità valida, il gestore di parametro non valido viene richiamato, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, queste funzioni impostano errno a EINVAL e restituiscono EINVAL.
Mapping di routine di testo generico
Routine Tchar.h |
_UNICODE e _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_taccess_s |
_access_s |
_access_s |
_waccess_s |
Requisiti
Routine |
Intestazione obbligatoria |
Intestazione facoltativa |
---|---|---|
_access_s |
<io.h> |
<errno.h> |
_waccess_s |
<wchar.h> o <io.h> |
<errno.h> |
Esempio
In questo esempio viene utilizzato _access_s per controllare il file denominato crt_access_s.c per verificare se esiste e se è consentita la scrittura.
// 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" );
}
}
Equivalente .NET Framework
Vedere anche
Riferimenti
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32