_access, _waccess

Legt fest, ob eine Datei schreibgeschützt ist. Sicherere Versionen sind verfügbar; siehe _access_s, _waccess_s.

Syntax

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

Parameter

path
Datei oder Verzeichnispfad.

mode
Lese-/Schreibattribut.

Rückgabewert

Jede Funktion gibt 0 zurück, wenn sich die Datei im angegebenen Modus befindet. Die Funktion gibt -1 zurück, wenn die benannte Datei nicht vorhanden ist oder nicht über den angegebenen Modus verfügt. in diesem Fall errno wird wie in der folgenden Tabelle dargestellt festgelegt.

Wert Beschreibung
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 zu diesen und anderen Rückgabecodes finden Sie unter , , _doserrno, _sys_errlistund _sys_nerr.errno

Hinweise

Wenn die _access-Funktion für eine Datei verwendet wird, bestimmt diese, ob die Datei oder das Verzeichnis existiert und ob es über die vom mode-Wert vorgegebenen Attribute verfügt. Bei Verwendung mit Verzeichnissen wird nur bestimmt, _access ob das angegebene Verzeichnis vorhanden ist. 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 Lesegeschützt
04 Schreibgeschützt
06 Lese- und Schreibvorgänge

Diese Funktion überprüft nur, ob die Datei und das Verzeichnis schreibgeschützt sind oder nicht, die Sicherheitseinstellungen des Dateisystems werden nicht überprüft. Dafür benötigen Sie ein Zugriffstoken. Weitere Informationen zur Dateisystemsicherheit finden Sie unter Zugriffstoken. Eine ATL-Klasse ist vorhanden, um diese Funktionalität bereitzustellen. siehe CAccessToken Klasse.

_waccess ist eine Breitzeichenversion von _access. Das path -Argument für _waccess ist eine Breitzeichenfolge. _waccess und _access verhalten sich andernfalls identisch.

Diese Funktion überprüft 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, legt die Funktion errno auf EINVAL fest und gibt -1 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 _access _access _waccess

Anforderungen

Routine Erforderlicher Header Optionale Header
_access <io.h> <errno.h>
_waccess <wchar.h> oder <io.h> <errno.h>

Beispiel

Im folgenden Beispiel wird _access die Datei mit dem Namen crt_ACCESS.C überprüft, um festzustellen, ob sie vorhanden ist und ob Schreibvorgänge zulässig sind.

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

Siehe auch

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