_access
, , _waccess
t_access
Określa, czy plik jest tylko do odczytu, czy nie. Dostępne są bardziej bezpieczne wersje; zobacz _access_s
, _waccess_s
.
Aby uzyskać informacje _taccess
, zobacz Ogólne mapowania funkcji tekstowych.
Składnia
int _access(
const char *path,
int mode
);
int _waccess(
const wchar_t *path,
int mode
);
Parametry
path
Ścieżka pliku lub katalogu.
mode
Atrybut odczytu/zapisu.
Wartość zwracana
Każda funkcja zwraca wartość 0, jeśli plik ma określony tryb. Funkcja zwraca wartość -1, jeśli nazwany plik nie istnieje lub nie ma danego trybu; w tym przypadku errno
parametr jest ustawiony tak, jak pokazano w poniższej tabeli.
Wartość | Opis |
---|---|
EACCES |
Odmowa dostępu: ustawienie uprawnień pliku nie zezwala na określony dostęp. |
ENOENT |
Nie można odnaleźć nazwy pliku lub ścieżki. |
EINVAL |
Nieprawidłowy parametr. |
Aby uzyskać więcej informacji na temat tych i innych kodów powrotnych, zobacz errno
, _doserrno
, _sys_errlist
i _sys_nerr
.
Uwagi
W przypadku użycia z plikami funkcja określa, _access
czy określony plik lub katalog istnieje i ma atrybuty określone przez wartość mode
. W przypadku użycia z katalogami określa tylko, _access
czy określony katalog istnieje; w systemach operacyjnych Windows 2000 i nowszych wszystkie katalogi mają dostęp do odczytu i zapisu.
mode wartość |
Plik sprawdzania dla |
---|---|
00 | Tylko istnienie |
02 | Tylko zapis |
04 | Tylko do odczytu |
6 | Odczyt i zapis |
Ta funkcja sprawdza tylko, czy plik i katalog są tylko do odczytu, czy nie, nie sprawdza ustawień zabezpieczeń systemu plików. W tym celu potrzebny jest token dostępu. Aby uzyskać więcej informacji na temat zabezpieczeń systemu plików, zobacz Access tokens (Tokeny dostępu). Klasa ATL istnieje, aby zapewnić tę funkcję; zobacz CAccessToken
Klasa.
_waccess
jest wersją szerokoznakową ; _access
argument to path
_waccess
ciąg o szerokim znaku. _waccess
i _access
zachowywać się identycznie inaczej.
Ta funkcja weryfikuje jego parametry. Jeśli path
jest NULL
lub mode
nie określa prawidłowego trybu, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, funkcja ustawia errno
wartość EINVAL
i zwraca wartość -1.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Mapowania funkcji tekstu ogólnego
Tchar.h rutyna |
_UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_taccess |
_access |
_access |
_waccess |
Wymagania
Procedura | Wymagany nagłówek | Opcjonalne nagłówki |
---|---|---|
_access |
<io.h> |
<errno.h> |
_waccess |
<wchar.h> lub <io.h> |
<errno.h> |
Przykład
W poniższym przykładzie użyto _access
metody sprawdzania pliku o nazwie crt_ACCESS.C
w celu sprawdzenia, czy istnieje i czy zapis jest dozwolony.
// 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.
Zobacz też
Obsługa plików
_chmod
, _wchmod
_fstat
, , _fstat32
, _fstat64
, _fstati64
, , _fstat32i64
_fstat64i32
_open
, _wopen
_stat
, _wstat
funkcje