Partager via


_access_s, , _waccess_s_taccess_s

Détermine les autorisations de lecture/écriture de fichier. Ces fonctions sont des versions de _access, _waccess avec des améliorations de sécurité, comme indiqué dans Fonctionnalités de sécurité dans le CRT.

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

Syntaxe

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

Paramètres

path
Chemin du répertoire ou du fichier.

mode
Paramètre d'autorisation.

Valeur retournée

Chaque fonction retourne 0 si le fichier a le mode donné. La fonction retourne un code d’erreur si le fichier nommé n’existe pas ou n’est pas accessible en mode donné. Dans ce cas, la fonction retourne un code d’erreur de l’ensemble suivant et définit également errno sur la même valeur.

Valeur errno Condition
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, voir errno, _doserrno, _sys_errlist et _sys_nerr.

Notes

Quand elle est utilisée avec des fichiers, la fonction _access_s détermine si le fichier spécifié existe et est accessible conformément à la valeur de mode. Quand elle est utilisée avec des répertoires, _access_s 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 Autorisation d’écriture.
04 Autorisation de lecture.
06 Autorisations de lecture et d’écriture.

L’autorisation de lire ou d’é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, il peut être inaccessible même si _access_s retourne la valeur 0.

_waccess_s est une version à caractères larges de _access_s, où l’argument path de _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. 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, ces fonctions attribuent à errno la valeur EINVAL et retournent EINVAL.

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

La fonction dans la tchar.h colonne est mappée à la fonction dans les autres colonnes en fonction du jeu de caractères défini au moment de la compilation.

Fonction tchar.h _UNICODE et _MBCS non définis _MBCS défini _UNICODE défini
_taccess_s _access_s _access_s _waccess_s

Spécifications

Routine En-tête requis En-tête facultatif
_access_s <io.h> <errno.h>
_waccess_s <wchar.h> ou <io.h> <errno.h>

Exemple

Cet exemple utilise _access_s pour vérifier si le fichier nommé crt_access_s.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" );
    }
}
File crt_access_s.c exists.
File crt_access_s.c does not have write permission.

Voir aussi

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