Condividi tramite


_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

FileAccess

Vedere anche

Riferimenti

Gestione di file

_chmod, _wchmod

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_open, _wopen

Funzioni _stat, _wstat