_access, _waccess

Bestimmt, ob eine Datei schreibgeschützt ist oder nicht. Sicherere Versionen verfügbar sind; finden Sie unter _access_s, _waccess_s.

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 die Datei den angegebenen Modus hat. Die Funktion gibt - 1, wenn für die benannte Datei nicht vorhanden zurück oder verfügt nicht den angegebenen Modus; in diesem Fall wird errno wie in der folgenden Tabelle festgelegt.

  • EACCES
    Zugriff verweigert: die Berechtigungseinstellung der Datei kann nicht angegebenen Zugriff.

  • ENOENT
    Dateiname oder Pfad nicht gefunden.

  • EINVAL
    Ungültiger Parameter.

Weitere Informationen zu diesen und anderen Rückgabecodes finden Sie unter _doserrno, errno, _sys_errlist und _sys_nerr.

Hinweise

Wenn sie mit Dateien verwendet wird, bestimmt die _access-Funktion, ob die angegebene Datei oder das Verzeichnis vorhanden und besitzt die Attribute, die durch den Wert von mode angegeben werden. Wenn es mit Verzeichnissen verwendet wird, bestimmt das _access nur, ob das angegebene Verzeichnis vorhanden; in Windows 2000 und in den neueren Betriebssystemen haben alle Verzeichnisse der Lese- und Schreibzugriff.

mode-Wert

Überprüfungen für Datei

00

Nur Vorhandensein

02

Nur Schreibzugriff

04

Schreibgeschützt

06

Lesen und Schreiben Sie

Diese Funktion liest nur, ob die Datei und das Verzeichnis oder nicht schreibgeschützt sind, es überprüft nicht die Dateisystemsicherheitseinstellungen. Für das benötigen Sie ein Zugriffstoken. Weitere Informationen über Dateisystemsicherheit, finden Sie unter Zugriffstoken. Eine ATL-Klasse vorhanden ist, um diese Funktion bereitzustellen; finden Sie unter 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 pathNULL ist, oder mode kein gültiger Modus angibt, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben. Wenn die Ausführung zulässig ist, um fortzufahren, legt die Funktion errno auf EINVAL fest und gibt -1 zurück.

Zuordnung generischer Textroutinen

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 verwendet, um die Datei zu überprüfen, die crt_ACCESS.C, um festzustellen genannt wird, ob sie vorhanden ist und dass das Schreiben zulässt wird.

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

.NET Framework-Entsprechung

FileAccess

Siehe auch

Referenz

Dateibehandlung

_chmod, _wchmod

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_open, _wopen

_stat- und _wstat-Funktionen