Partager via


_access, , _waccesst_access

Détermine si un fichier est en lecture seule ou non. Des versions plus sécurisées sont disponibles ; voir _access_s, _waccess_s.

Pour _taccess, consultez mappages de fonctions de texte générique.

Syntaxe

int _access(
   const char *path,
   int mode
);
int _waccess(
   const wchar_t *path,
   int mode
);

Paramètres

path
Chemin du répertoire ou du fichier.

mode
Attribut de lecture/écriture.

Valeur retournée

Chaque fonction retourne 0 si le fichier a le mode donné. La fonction retourne -1 si le fichier nommé n’existe pas ou n’a pas le mode donné ; dans ce cas, errno est défini comme indiqué dans le tableau suivant.

Valeur Description
EACCES Accès refusé : le paramètre d’autorisation du fichier n’autorise pas l’accès spécifié.
ENOENT Chemin ou nom de fichier introuvable.
EINVAL Paramètre non valide.

Pour plus d’informations sur ces codes de retour et d’autres codes de retour, consultez , , _sys_errlist_doserrnoet _sys_nerr.errno

Notes

Quand elle est utilisée avec des fichiers, la fonction _access détermine si le répertoire ou fichier spécifié existe et a les attributs spécifiés par la valeur de mode. Lorsqu’ils sont utilisés avec des répertoires, _access détermine uniquement si le répertoire spécifié existe ; dans les systèmes d’exploitation Windows 2000 et versions ultérieures, tous les répertoires disposent d’un accès en lecture et en écriture.

Valeur mode Test réalisé sur le fichier
00 Existence uniquement
02 Écriture seule
04 Lecture seule
06 Lecture et écriture

Cette fonction vérifie uniquement si le fichier et le répertoire sont en lecture seule ou non, il ne vérifie pas les paramètres de sécurité du système de fichiers. Pour cela, vous avez besoin d’un jeton d’accès. Pour plus d’informations sur la sécurité du système de fichiers, consultez Jetons d’accès. Une classe ATL existe pour fournir cette fonctionnalité ; voir CAccessToken Classe.

_waccess est une version à caractères larges de _access; l'argument path de _waccess est une chaîne à caractères larges. Sinon,_waccess et _access se comportent de la même façon.

Cette fonction valide ses paramètres. S’il path s’agit NULL ou mode ne spécifie pas de mode valide, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à se poursuivre, la fonction affecte à errno la valeur EINVAL et retourne -1.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Mappages de fonctions de texte générique

Routine Tchar.h _UNICODE et _MBCS non définis _MBCS défini _UNICODE défini
_taccess _access _access _waccess

Spécifications

Routine En-tête requis En-têtes facultatifs
_access <io.h> <errno.h>
_waccess <wchar.h> ou <io.h> <errno.h>

Exemple

L’exemple suivant utilise _access pour vérifier le fichier nommé crt_ACCESS.C pour voir s’il existe et si l’écriture est autorisée.

// 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.

Voir aussi

Gestion des fichiers
_chmod, _wchmod
_fstat, , _fstat32, _fstati64_fstat64, , _fstat32i64_fstat64i32
_open, _wopen
_stat, fonctions _wstat