Partager via


_access_s, _waccess_s

Détermine les autorisations de lecture/écriture du fichier. Il s'agit de versions de _access, _waccess avec des améliorations de sécurité, comme décrit dans Fonctionnalités de sécurité dans le CRT.

errno_t _access_s( 
   const char *path, 
   int mode 
);
errno_t _waccess_s( 
   const wchar_t *path, 
   int mode 
);

Paramètres

  • path
    Fichier ou chemin d'accès au répertoire.

  • mode
    Définition des autorisations

Valeur de retour

Chaque fonction retourne 0 si le fichier est le mode donné. La fonction retourne un code d'erreur si le fichier nommé n'existe pas ou n'est pas disponible dans le mode donné. Dans ce cas, la fonction retourne un code d'erreur de l'ensemble de la façon suivante et définit également errnoà la même valeur.

  • EACCES
    Accès refusé. Le paramètre d'autorisation du fichier n'autorise pas l'accès spécifié.

  • ENOENT
    Fichier ou chemin d'accès introuvable.

  • EINVAL
    Paramètre non valide.

Pour plus d'informations, consultez errno, _doserrno, _sys_errlist et _sys_nerr.

Notes

Lorsqu'elle est utilisée avec les fichiers, la fonction _access_s détermine si le fichier spécifié existe et est accessible comme spécifié par la valeur demode. Lorsqu'ils sont utilisés avec des répertoires, _access_s détermine seulement si le repertoire spécifié existe. Dans Windows 2000 et dans les systèmes d'exploitation ultérieurs, tous les répertoires ont un accès en lecture et en écriture.

valeur du mode

Les contrôles de fichier

00

Existence uniquement.

02

Autorisation d'écriture.

04

Autorisation de lecture.

06

Autorisation de lecture et d'écriture.

L'autorisation de lire ou écrire le fichier n'est pas suffisante pour garantir la possibilité d'ouvrir un fichier. Par exemple, si un fichier est verrouillé par un autre processus, elle peut ne pas être accessibles même si _access_sretourne 0.

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

Ces fonctions valident leurs paramètres. Si path est NULL ou que mode ne spécifie aucun mode valide, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, ces fonctions définissent errno à la valeur EINVAL et retournent EINVAL.

Mappages de routines de texte générique

Routine Tchar.h

_UNICODE et _MBCS non définis

_MBCS défini

_UNICODE défini

_taccess_s

_access_s

_access_s

_waccess_s

Configuration requise

Routine

En-tête requis

En-tête facultatif

_access_s

<io.h,>

<errno.h>

_waccess_s

<stdio.h> ou <wchar.h>

<errno.h>

Exemple

L'exemple suivant utilise _access_spour vérifier si le fichier nommé crt_ACCESS.C existe et si l'écriture est autorisée.

// 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" );
    }
}
  

Équivalent .NET Framework

FileAccess

Voir aussi

Référence

Gestion de fichiers

_access, _waccess

_chmod, _wchmod

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_open, _wopen

_stat, _wstat, fonctions