_access_s, _waccess_s

Określa uprawnienia do odczytu/zapisu pliku. Te funkcje to wersje programu _access_waccessz ulepszeniami zabezpieczeń zgodnie z opisem w temacie Funkcje zabezpieczeń w narzędziu CRT.

Składnia

errno_t _access_s(
   const char *path,
   int mode
);
errno_t _waccess_s(
   const wchar_t *path,
   int mode
);

Parametry

path
Ścieżka pliku lub katalogu.

mode
Ustawienie uprawnień.

Wartość zwracana

Każda funkcja zwraca wartość 0, jeśli plik ma określony tryb. Funkcja zwraca kod błędu, jeśli nazwany plik nie istnieje lub nie jest dostępny w danym trybie. W takim przypadku funkcja zwraca kod błędu z zestawu w następujący sposób, a także ustawia errno tę samą wartość.

errno Wartość Stan
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, zobacz errno, _doserrno, _sys_errlisti _sys_nerr.

Uwagi

W przypadku użycia z plikami funkcja określa, _access_s czy określony plik istnieje i może być dostępny zgodnie z wartością mode. W przypadku użycia z katalogami określa tylko, _access_s 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 Uprawnienie do zapisu.
04 Uprawnienie do odczytu.
6 Uprawnienia do odczytu i zapisu.

Uprawnienia do odczytu lub zapisu pliku nie wystarczy, aby zapewnić możliwość otwierania pliku. Jeśli na przykład plik jest zablokowany przez inny proces, może być niedostępny, mimo że _access_s zwraca wartość 0.

_waccess_s jest wersją _access_so szerokim znaku , gdzie path argumentem _waccess_s jest ciąg o szerokim znaku. _waccess_s W przeciwnym razie i _access_s zachowują się identycznie.

Te funkcje weryfikują swoje 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, te funkcje są ustawione errno na EINVAL i zwracają wartość EINVAL.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Mapowania procedur tekstu ogólnego

Procedura tchar.h _UNICODE i _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_taccess_s _access_s _access_s _waccess_s

Wymagania

Procedura Wymagany nagłówek Opcjonalny nagłówek
_access_s <io.h> <errno.h>
_waccess_s <wchar.h> lub <io.h> <errno.h>

Przykład

W tym przykładzie użyto _access_s funkcji sprawdzania pliku o nazwie crt_access_s.c, aby sprawdzić, czy istnieje i czy zapis jest dozwolony.

// crt_access_s.c

#include <io.h>
#include <stdio.h>
#include <stdlib.h>

int main( void )
{
    errno_t err = 0;

    // Check for existence.
    if ((err = _access_s( "crt_access_s.c", 0 )) == 0 )
    {
        printf_s( "File crt_access_s.c exists.\n" );

        // Check for write permission.
        if ((err = _access_s( "crt_access_s.c", 2 )) == 0 )
        {
            printf_s( "File crt_access_s.c does have "
                      "write permission.\n" );
        }
        else
        {
            printf_s( "File crt_access_s.c does not have "
                      "write permission.\n" );
        }
    }
    else
    {
        printf_s( "File crt_access_s.c does not exist.\n" );
    }
}
File crt_access_s.c exists.
File crt_access_s.c does not have write permission.

Zobacz też

Obsługa plików
_access, _waccess
_chmod, _wchmod
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32
_open, _wopen
_stat, _wstat funkcje