_access_s
, , _waccess_s
_taccess_s
Określa uprawnienia do odczytu/zapisu pliku. Te funkcje to wersje programu _access
_waccess
z ulepszeniami zabezpieczeń zgodnie z opisem w temacie Funkcje zabezpieczeń w narzędziu CRT.
Aby uzyskać informacje _taccess_s
, zobacz Ogólne mapowania funkcji tekstowych.
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_errlist
i _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_s
o 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 funkcji tekstu ogólnego
Funkcja w kolumnie tchar.h
jest mapowana na funkcję w innych kolumnach w zależności od zestawu znaków zdefiniowanego w czasie kompilacji.
Funkcja tchar.h |
_UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_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