access, _waccess
Nach oben zu Io.h - Index
Header-Datei
io.h
Kategorie
Eingabe-/Ausgaberoutinen
Prototyp
int access(const char *filename, int amode);
int _waccess(const wchar_t *filename, int amode);
Beschreibung
Prüft, ob und in welchem Modus auf eine Datei zugegriffen werden kann.
access überprüft, ob die durch filename angegebene Datei vorhanden ist und, wenn vorhanden, ob die Datei gelesen, geschrieben oder ausgeführt werden kann.
Der Parameter amode kann folgende Werte annehmen:
06 |
Prüft, ob eine Lese- und Schreibberechtigung vorliegt. |
04 |
Prüft, ob eine Leseberechtigung vorliegt. |
02 |
Prüft, ob eine Schreibberechtigung vorliegt. |
01 |
Ausführen (wird ignoriert) |
00 |
Prüft, ob die Datei vorhanden ist. |
Alle vorhandenen Dateien können zum Lesen geöffnet werden (amode gleich 04), so dass 00 und 04 das gleiche Ergebnis haben. Ebenso sind die amode-Werte 06 und 02 gleichbedeutend, weil unter Win32 der Schreibzugriff den Lesezugriff impliziert.
Wenn filename auf ein Verzeichnis verweist, ermittelt access einfach, ob das Verzeichnis vorhanden ist.
Rückgabewert
Wenn der geforderte Zugriff zulässig ist, gibt access 0 zurück. Andernfalls wird der Wert -1 zurückgegeben und der globalen Variablen errno einer der folgenden Werte zugewiesen:
ENOENT |
Path or file name not found (Pfad oder Dateiname nicht gefunden) |
EACCES |
Permission denied (Zugriff verweigert) |
Beispiel
#include <stdio.h>
#include <io.h>
int file_exists(char *filename);
int main(void)
{
printf("Does NOTEXIST.FIL exist: %s\n",
file_exists("NOTEXISTS.FIL") ? "YES" : "NO");
return 0;
}
int file_exists(char *filename)
{
return (access(filename, 0) == 0);
}
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
access |
+ |
+ |
||
_waccess |
Nur NT |