_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
Siehe auch
Referenz
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32