_access, _waccess
Determina se un file è in sola lettura o meno. Sono disponibili le versioni più sicure; consultare _access_s, _waccess_s.
int _access(
const char *path,
int mode
);
int _waccess(
const wchar_t *path,
int mode
);
Parametri
path
Un file o un percorso di directory.mode
Attributo lettura /scrittura.
Valore restituito
Ogni funzione restituisce 0 se il file presenta la modalità specificata. La funzione restituisce - 1 se il file denominato non esiste o non è stata specificata la modalità; in questo caso, errno è impostato come illustrato nella tabella seguente.
EACCES
Accesso negato: l'impostazione di autorizzazione del file non consente l'accesso specificato.ENOENT
File o percorso non trovato.EINVAL
Parametro non valido.
Per ulteriori informazioni su questi e altri codici restituiti, vedere _doserrno, errno, _sys_errlist, e _sys_nerr.
Note
Quando viene utilizzata con i file, la funzione _access determina se il file o la directory specificata esiste e dispone degli attributi specificati dal valore di mode. Una volta utilizzato con le directory, _access determina solo se la directory specificata esiste; in Windows 2000 e sistemi operativi successivi, tutte le directory hanno accesso in scrittura e lettura.
Valore mode |
Verifica il file per |
---|---|
00 |
Solo l'esistenza |
02 |
Sola scrittura |
04 |
Sola lettura |
06 |
Lettura e scrittura |
Questa funzione esamina solo se il file e la directory siano in sola lettura oppure no, non controlla le impostazioni di sicurezza del filesystem. Per quello è necessario un token di accesso. Per ulteriori informazioni sulla sicurezza di filesystem, consultare Token di accesso. Esiste una classe ATL per fornire questa funzionalità; consultare Classe CAccessToken.
_waccess è una versione a caratteri estesi di _access; l'argomento path in _waccess è una stringa di caratteri estesi. _waccess e _access si comportano in modo identico in caso contrario.
Questa funzione convalida 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, la funzione imposta errno a EINVAL e restituisce -1.
Mapping di routine di testo generico
Routine Tchar.h |
_UNICODE e _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_taccess |
_access |
_access |
_waccess |
Requisiti
Routine |
Intestazione obbligatoria |
Intestazioni facoltative |
---|---|---|
_access |
<io.h> |
<errno.h> |
_waccess |
<wchar.h> o <io.h> |
<errno.h> |
Esempio
In questo esempio viene utilizzato _access per controllare il file denominato crt_ACCESS.C per verificare se esiste e se è consentita la scrittura.
// 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" );
}
}
Equivalente .NET Framework
Vedere anche
Riferimenti
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32