_access, _waccess

Określa, czy plik jest tylko do odczytu, czy nie. Dostępne są bardziej bezpieczne wersje; zobacz _access_s, _waccess_s.

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_errlisti _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ą ; _accessargument 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 procedur tekstu ogólnego

Tchar.h Rutynowych _UNICODE i _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_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