_access, _waccess

Determina se un file è di sola lettura o meno. Sono disponibili versioni più sicure; vedere _access_s, _waccess_s.

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_errliste _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 routine 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