_access_s, _waccess_s

Bestimmt die Lese-/Schreibberechtigungen einer Datei. Diese Funktionen sind Versionen von _access, _waccess mit Sicherheitsverbesserungen, wie in sicherheitsfeatures im CRT beschrieben.

Syntax

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

Parameter

path
Datei oder Verzeichnispfad.

mode
Berechtigungseinstellung.

Rückgabewert

Jede Funktion gibt 0 zurück, wenn sich die Datei im angegebenen Modus befindet. Die Funktion gibt einen Fehlercode zurück, wenn die benannte Datei nicht vorhanden ist oder im angegebenen Modus nicht zugänglich ist. In diesem Fall gibt die Funktion einen Fehlercode zurück und legt errno auf diesen Code fest.

Wert vom Typ errno Bedingung
EACCES Zugriff verweigert. Die Berechtigungseinstellung der Datei lässt den angegebenen Zugriff nicht zu.
ENOENT Der Dateiname oder der Pfad wurde nicht gefunden.
EINVAL Ungültiger -Parameter.

Weitere Informationen finden Sie untererrno, _doserrno, _sys_errlistund _sys_nerr.

Hinweise

Wenn die _access_s-Funktion für eine Datei verwendet wird, bestimmt diese, ob die Datei existiert und im angegebenen mode darauf zugegriffen werden darf. Wenn die Funktion dagegen mit einem Verzeichnispfad verwendet wird, bestimmt _access_s lediglich, ob dieses Verzeichnis existiert. In Windows 2000 und höher verfügen alle Verzeichnisse über Lese- und Schreibzugriff.

Wert vom Typ mode überprüft nur, ob die Datei
00 existiert.
02 Schreibberechtigung.
04 Leseberechtigung.
06 Lese- und Schreibberechtigung.

Die Berechtigung zum Lesen oder Schreiben der Datei reicht nicht aus, um sicherzustellen, dass eine Datei geöffnet werden kann. Wenn beispielsweise ein anderer Prozess auf die Datei zugreift, kann möglicherweise auch dann nicht darauf zugegriffen werden, wenn _access_s 0 zurückgibt.

_waccess_s ist eine Breitzeichenversion von _access_s, wo das path-Argument für _waccess_s eine Breitzeichenfolge ist. Andernfalls verhalten sich _waccess_s und _access_s identisch.

Diese Funktionen überprüfen ihre Parameter. Wenn path ein gültiger Modus nicht angegeben wird NULLmode , wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, stellen diese Funktionen errno auf EINVAL ein und geben EINVAL zurück.

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the CRT.

Generische Textroutinzuordnungen

Tchar.h-Routine _UNICODE und _MBCS nicht definiert _MBCS Definiert _UNICODE Definiert
_taccess_s _access_s _access_s _waccess_s

Anforderungen

Routine Erforderlicher Header Optionaler Header
_access_s <io.h> <errno.h>
_waccess_s <wchar.h> oder <io.h> <errno.h>

Beispiel

In diesem Beispiel wird _access_s verwendet, um die Datei crt_access_s.c auf Existenz und Schreibberechtigung zu prüfen.

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

Siehe auch

Dateiverarbeitung
_access, _waccess
_chmod, _wchmod
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32
_open, _wopen
_stat, _wstat Funktionen