_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