Condividi tramite


_access_s, _waccess_s, _taccess_s

Determina le autorizzazioni di lettura/scrittura dei file. Queste funzioni sono versioni di , _waccesscon 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_errliste _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